1. 程式人生 > >Swift3中方法可變引數語法的一些改變

Swift3中方法可變引數語法的一些改變

                       

我們知道在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