1、將函式作為引數傳遞。例如:
寫乙個兩個數求和的函式:performoperation(multiply)
func performoperation(operation:(double,double) -> double)
}func multiply(op1: double, op2: double) -> double
以上,有更酷的實現,用閉包的方法:
改進為:
performoperation ()
func performoperation(operation:(double,double) -> double)
}
編譯器會根據上下文推斷型別,所以,以上的 performoperaion 又可以簡化為:
performoperation ()
op1,op2 的型別可以推斷,當然返回型別也可以推斷,故而返回型別也可省去,甚至連 return 也可以省去。
由於編譯器不強制你一定要寫形參,故這裡的 op1, op2 也可以省去,用 $0, $1, $2, ...... 分別代表第乙個第二第三個引數等等,
所以,上面又可以再次簡化為:
performoperation ()
swift 的編譯器真 *** 只能,哈哈!
等等,還沒完,
再簡化為:
performoperation ()
有個條件,就是 op1 * op2 是作為最後乙個引數傳遞的時候就可以這樣做,把函式引數移到括號外面,如上。其他的,如果有另外的引數的話就可以像之前的那樣放在括號()裡面;如果只有乙個引數的話,括號還可以直接去掉,如下:
performoperation
至此,簡化完畢。
2、swift 支援多型,what an amazing !
例如,當你要求乙個數的平方根的時候,而已還是想用回原來的函式 performoperation ,但是這個函式要求的形參是乙個包含兩個 double 型別的函式,求平方根只需要傳入乙個引數就行了啊,那麼來改造一下這個函式吧,在寫乙個同名的函式 performoperation ,然後定義為只需要乙個形參就好了。
注意:swift 支援在乙個類中同時存在同名的多個函式,形參不一樣就好了,就是多型啦~
那麼,再增加乙個 performoperation 函式,如下:
func performoperation(operation: double -> double)
}
現在就可以這樣呼叫來計算數值平方根了。
performoperation
Swift學習筆記一
1.println hello 不需要末尾寫分號了,感覺又回到了石器時代 2.let constant test 1 var variable test 2 let關鍵字定義常量 var關鍵字定義變數,var讓人聯想到解釋型語言了,這種弱型別幾家歡喜幾家愁啊 let variable double ...
swift 學習筆記一
一 常量和變數 方式1 型別推斷 方式2 型別標註 swift語言有乙個非常強大的功能,就是型別推斷,不需要標註變數的型別,可以根據賦值進行型別自動匹配和推斷 型別標註 是指明變數的型別如int等 這種是非常安全的 main.swift ios swift created by 阿三哥 on 16 ...
swift的學習筆記 一
objective c中的日誌列印 nslog nsstring format,nslog oc 中的日誌資訊 第一行 是列印的格式,列印方法,列印函式.第二行 是在 nsstring format,所輸出的資訊,在日誌中得到的資訊為 oc 中的日誌資訊.objective c中在列印日誌裡增加引數...