![](/img/trans.png)
[英]Swift error Type 'T' does not conform to protocol 'IntegerLiteralConvertible'
[英]Type '()' does not conform to protocol 'IntegerLiteralConvertible'
func makeIncrementer() -> (Int -> Int) {
func addOne(number: Int) -> Int {
return 1 + number
}
return addOne
}
上面是現在函數在Swift中作為一等類型的簡單示例代碼,當我以以下方式調用函數時:
var increment = makeIncrementer()
increment(7)
它完美地給出了答案
但是出於好奇,我嘗試了直接方法,即
makeIncrementer(7) // error
它給出了一個錯誤
為什么會這樣??? PS我是Swift的初學者
調用makeIncrementer()
返回該函數,因此要調用該函數,請在第二組括號中傳遞參數:
makeIncrementer()(7)
給出錯誤消息是因為Swift將makeIncrementer(7)
解釋為7
傳遞給了不帶任何參數的makeIncrementer
。 希望將來Swift錯誤消息變得更加友好。 盡管從技術上講是正確的,但給出的錯誤消息會引起很多混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.