Swift3中方法可變引數語法的一些改變
阿新 • • 發佈:2019-01-13
我們知道在Swift2中,預設情況下方法的引數是let值,也就是不可改變的.
不過我們可以在引數前新增var關鍵字改變其不變性:
func foo(var i:Int){ i += 1 print(i)}
- 1
- 2
- 3
- 4
不過遺憾的是在Swift2.x+中,已經明確表明方法引數的修飾關鍵字var將會在Swift3中被移除,所以為了產出這可惡的警告,你必須使用inout關鍵字,並且在呼叫方法傳遞實參時也要加上地址符:
fun foo(inout i:Int){ i += 1 print(i)}var i = 10foo(&i)print(i)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
that’s all!!!
不過在Xcode8.0beta中Swift3.0的預演版中,情況又有所變化,執行上述程式碼,編譯器會提示你inout關鍵字放錯地方了,你必須將inout放到冒號後面去:
func test( i:inout Int){ i += 1 print(i)}var x = 10test(&x)print(x)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
你可以結合我之前寫的一篇Swift中如何轉換不同型別的Mutable指標來看,相信你一定有所收穫 ;]
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來! https://blog.csdn.net/jiangjunshow