這裏使用的代碼來自Swift Official Document如果一個常量變量是一種函數類型,那麼什麼是不能改變的?
func makeIncrementer(forIncrement amount: Int) ->() -> Int {
var runningTotal = 0
func incrementer() -> Int {
runningTotal += amount
return runningTotal
}
return incrementer
}
// what is the different with "var incrementByTen"
let incrementByTen = makeIncrementer(forIncrement: 10)
// why there is a "()" ajacent to the variable name?
incrementByTen()
可變incrementByTen
分配由與makeIncrementer
返回的功能了10
問題的爭論1.有什麼型動物時increemtnByTen
是分配給一個變量而不是常量?既然這是恆定的,哪一部分是不可改變的?
問題2.爲什麼調用時使用括號對「()」與變量名稱,我知道這可能是一個函數初始值設定工作人員。但incrementByTen
是一個常數名稱。它是否等於它指向的功能?或者這只是一種編程語言的一般特徵。當你想使用一個函數類型的變量/常量時,你必須使用「()」和名字。
提示返回
Int
值:什麼類型的返回功能' makeIncrementer'? –@ShadowOf'makeIncrementer'函數返回一個函數類型'() - > Int'。但字符串'makeIncrementer'是一個函數名稱,它使用'()'。但字符串'incrementByTen'是一個變量名,它如何與'()'一起使用? – SLN
當你在變量中有函數時,你需要有辦法執行這個函數,對吧?這是方式。 –