2014/06/12

Swift function

Swift某些地方真的很像C XDD
我在書上看到了這段程式碼,感到非常興奮

這個方法回傳值Int指到Int,意即該Int變數指到Int回傳值的方法
所以該方法必須先宣告成變數,並透過變數再將值傳遞進入才能得到值

另一個範例則是

list指到numbers這個Array
condition指到lessThanTen方法

意即for in再走訪時,會透過item以迭代的方式取得list陣列的值並比較是否有小於10
如果其中一項成立則回傳true,反之回傳false




//
//  main.swift
//  test
//
//  Created by CYFang on 6/6/14.
//  Copyright (c) 2014 CYFang. All rights reserved.
//

//return Array
func soft(m_array:Int...)->Int[]{
    //count
    let m_count = m_array.count
    
    //array
    var temp_array = m_array
    
    for i in 0 .. m_count {
        var min = i
        
        for j in (i + 1) .. m_count{
            if(temp_array[i] < temp_array[j]){
                var temp = temp_array[j]
                temp_array[j] = temp_array[i]
                temp_array[i] = temp
            }
        }
    }
    //return
    return temp_array
}

//加總
func mySum()->Int {
    //宣告變數
    var x = 100
    
    //宣告方法
    func add(){
        for i in 1...x{
            x+=i
        }
    }
    
    //執行方法
    add()
    
    //回傳數值
    return x
}


func myTest(data1:Int, data2:Int)->Int{
    var sum = 0
    func total() -> Int{
        for i in data1 ... data2 {
            sum += i
        }
        return sum
    }
    
    return total()
}

//該方法指標指到Double這個方法,則必須先宣告變數 有點類似C的指標XD
func makeIncrementer() -> (Int -> Double) {
    func addOne(number: Int) -> Double {
        return Double(1 + number)
    }
    return addOne
}

//Array
let m_array = [98, 45, 68, 90, 29, 43, 17]
println("\(m_array)\n")

for index in sort(m_array){
    print("\(index) ")
}

println("\n\n\(m_array)")
println("\n\(mySum())")
println(myTest(1, 10))

var incrementer = makeIncrementer()
println(incrementer)
println(incrementer(5))


執行成果: