您的位置:首页 > 移动开发 > Swift

swift(三)

2015-10-27 09:53 253 查看
class ViewController:
UIViewController {

    override
func viewDidLoad() {
        super.viewDidLoad()
        
        //闭包的使用
        let names = ["123","456",
"789", "abc","ddd"]
        let reversed = names.sort(backwards)
        
        print("\(reversed)")
        
        //闭包表达式语法
//            { (parameters) -> returnType in
//                statements
//        }
        
        let reversed1 = names.sort({(s1:String, s2:String)
-> Bool in
            return s1 > s2
        })
        print("\(reversed1)")
        
        //根据上下文推断类型 
通过内联闭包表达式构造的闭包作为参数传递给函数时,都可以推断出闭包的参数和返回值类型,这意味着您几乎不需要利用完整格式构造任何内联闭包。
        let reversed2 = names.sort({s1, s2
in return s1 > s2})
        print("\(reversed2)")
        
        //单闭包隐式返回
        let reversed3 = names.sort({s1, s2
in s1 > s2})
        print("\(reversed3)")
        
        //参数名称缩写
        let reversed4 = names.sort({$0 > $1})
        print("\(reversed4)")
        
        //因为之前声明的是hd2 
所以又拷贝了一份 而不是hd本身(结构体)
        let hd2 =
Resolution(width: 1000, height:
100)
        var cinema = hd2
        
        print("cinema =
\(cinema)")
        
        cinema.width =
200
        print("cinema =
\(cinema)")
        print("hd2 =
\(hd2)")
        
        //字符串、数组、字典
在swift中
均以结构体型存在,在传入函数的时候会发生 拷贝行为
        
        //延迟存储属性
        /*
            当第一次被调用才会计算其初始值的属性(必须将延迟存储属性声明成变量)lazy var import (被标记为lazy的属性
没有初始化的时候就同时被多个线程访问,无法保证制备初始化一次)
        */
        
        //属性观察器  willset在新的值被设置之前调用
        //didSet 在新的值被设置之后立即调用
        
        //didSet 观察器 
将旧的属性值作为参数传入
        
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    func backwards(s1:String, s2:String) ->
Bool {
        return s1 > s2
    }
    
    func someFunction(closure: () ->
Void) {
        
        print("这是函数");
    }

    //结构体
    struct Resolution {
        var width =
0
        var height =
0
    }
    
    
    
    override
func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift iOS