swift基本構文03

2648 ワード

<6>集合
func demo(){
    //  let       
    //  var      

    //1.       
    let array = [1,2,3]
    let array1 = ["a","b","c"]
    let array2 = ["  ","  ","  "]
    print(array)
    print(array1)
    print(array2)
    
    //      
    var a1 = ["  "]
    a1.append("  ")
    print(a1)
    
    //         
    var a2: [String] = [String]()
    a2.append("   ")
    print(a2)
    
    //2.     
    let a3 = ["%","@","!"]
    for i in 0..

<7>関数
//   swift         
func test() {
    //            ,  swift 2.0            , swift 3.0     
    func sum(a:Int ,b: Int) -> Int {
        return a + b
    }
    
    //         
    //                     ,     \       
    func mul(num1 a: Int,num2 b: Int) -> Int {
        return a * b
    }
    
    let result =  sum(a: 1, b: 1)
    print(result)
    let result1 = mul(num1: 5, num2: 6)
    print(result1)
}

<8>閉パッケージ
func demo() {
 
    //  1.                          
    let closure = {
        print("hello")
    }
    //      
    closure()
    
    
    
    func test() {
        print("hello")
    }
    //    
    test()
    
    
    
    //2.                          
    //  
    
    let closure1 = { (a: Int, b: Int) -> Int in
        return a + b
    }
    let result = closure1(5, 6)
    print(result)
    
    
    
    //  
    func sum(a: Int,b: Int) -> Int {
        return a + b
    }
    let result2 = sum(a: 5, b: 2)
    print(result2)
    
    
}

<8.1>閉パッケージの使用
override func viewDidLoad() {
    super.viewDidLoad()
   
    let closure = { (result: String) -> () in
        print(result)
    }
    loadData(callBack: closure)
}

//  3.0  
//  @escaping   ,                 
//  @noescape                  ,           
func loadData(callBack: @escaping (String)->())  {
    DispatchQueue.global().async {
        //      
        Thread.sleep(forTimeInterval: 2)
        
        //    
        let result = "123"
        
        DispatchQueue.main.async {
            //    
            callBack(result)
        }
    }
}