Swift学习2

变量

变量修辞关键词

  • strong(默认)
  • weak(弱引用,计数不会+1),必须为可选类型变量,一是可选? !,二是变量var

 String格式

  • "\(h):\(m):\(s)"
  • String(h)+String(m)+String(s)
  • String(format:"%2d:%2d:%2d",arguments:[h:m:s])

数组 可以不同类型,自动推导为NSObject

结构体(数组)  值类型

类类型  引用类型

断言

assert(i>0, "error")
assert(i>0)

函数

一般形式

(parameters) -> returntype {
    statements
}

没有返回值的三种写法

  • 直接省略
  • -> Void
  • -> ()

简写

 

闭包

闭包一般形式

{ (parameters) -> returntype in 
    statements
}

简写

// 返回值被推断为Bool,可以省略 -> Bool 和 参数括号
{ s1, s2 in return s1 > s2}
// 单行表达式,可以省略return
{ s1, s2 in s1 > s2}
// 省略参数,直接用$0 $1 $2代替
{ $0 > $1 }
// 没有参数和返回值
{ print("") }

/* 
总结:闭包返回类型可通过statements推断出来就可以省略;
        返回类型省略,参数列表()也可以省略;
        参数列表页可以省略,通过$0 $1 ... 代替
*/

尾随闭包

将一个很长的闭包表达式作为最后一个参数传递给函数

// 正常写法
func fun1(bb: 闭包)
// 尾随闭包
func fun1(){ 闭包 }
func fun1{ 闭包 }

捕获

闭包是引用类型

枚举

 可以有方法

enum compass{
case North
case South
case East
case West
}
或
enum compass{
case North, case South, case East, case West
}

存储属性

计算属性

计算属性不会存储值,需要在计算的时候复制给另外属性来存储

// set 和 get
// SwiftProperty是计算属性,不能存储值,SwiftPropertyStore存储值
// set包含newValue参数
var SwiftProperty : String
{
     set{
         self.SwiftPropertyStore = newValue
     }
     get{
         return self.SwiftPropertyStore
     }
}   
var SwiftPropertyStore : String!

// willset 和 didget
// 
// 
var SwiftProperty : String
{
     willSet{
         print("\(newValue)")
     }
     didSet{
         print("\(oldValue)")
     }
} 

 

你可能感兴趣的:(swift)