Swift基础知识
发布时间:2020-12-14 07:04:01 所属栏目:百科 来源:网络整理
导读:1.初始化数组、字典 //Array var array = Array T() //Dictionary var name = Dictionary String ,value() 更推荐的写法: //Array var array = [T]() //Dictionary var name = [ String :Value]() 并且这个”() ” 表示调用Array和Dictionary的初始化方法 比
1.初始化数组、字典//Array
var array = Array<T>()
//Dictionary
var name = Dictionary<String,value>()
更推荐的写法: //Array
var array = [T]()
//Dictionary
var name = [String:Value]()
并且这个”() ” 表示调用Array和Dictionary的初始化方法 class CalculatorBrain{ init() } //会调用init()方法 let instance = CalculatorBran()
2.如果不给方法显示的加private修饰符,那么这个方法就是public的3.enum可以包含函数,也可以只包含属性,就像calss一样,enum中的case可以和数据类型管理起来enum op{
case A(Double) //Operand和Double关联起来
case B(String,Double->Double) //UnaryOperation和一个元祖关联
case C(String,(Double,Double)->Double)//二元函数
}
4.函数的参数 默认是以let修饰的不可修改的变量func evaluate(ops: [op]) -> String {
if !ops.isEmpty {
let op = ops.removeLast()
}
}
会报错 :ops是一个不可修改对象,不能被修改 func evaluate(let ops:[op]->String){
...
}
所以如果把let修改成var的话就不会报错了 func evaluate(var ops:[op]->String){
...
}
以上的这种写法和下面是一样的 func evaluate(ops:[op]->String){
var ops1 = ops
...
}
但是要知道的是,这样写并不会改变给函数外的数组。 5.Struct和calss非常相似,Struct也可以有方法。区别是:
6.判断Enum中的值的好办法是使用switchenum op{
case Operand(Double) //Operand和Double关联起来
case UnaryOperation(String,Double->Double) //UnaryOperation和一个元祖关联
case BinaryOperaion(String,Double)->Double)//二元函数 } func evaluate(ops: [op]) -> String {
if !ops.isEmpty {
var tmp = ops
let op = tmp.removeLast()
switch op {
case .Operand(let operand) //注意这边直接使用了一个"." 这是因为完整的写法是Op.Operand(Double),这里可以直接省略掉.号前面的Op
}
}
}
注意 不要对所有的switch 都加上default的处理。switch一个enum如果穷尽了enum里面的项,那么就不需要再加default处理 7.在项目中如果需要print出对象的具体信息,需要让对象可以转换成String这个时候就需要如下2个步奏(对struct,enum也适用): ①添加一个属性“description” var description:String {
get{
return ....
}
}
②并且需要这个对象加上一个协议:Printable 完整例子: enum op:Printable{
case Operand(Double)
case UnaryOperation(String,Double->Double)
case BinaryOperation(String,Double)->Double)
var description:String {
get{
switch self {
case .Operand(let operand):
return "(operand )"
case .UnaryOperation(let symbol,_):
return symbol
case .BinaryOperation(let symbol,_):
return symbol
}
}
}
}
8.在swift中你可以在一个func中嵌套另外一个funcfunc test(){
func say(word:String){
print(word)
}
say("hello")
say("world")
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |