Swift3中方法可变参数语法的一些改变

本文探讨了Swift中方法参数的可变性,从Swift2的var关键字到Swift3及以后版本中inout关键字的使用。介绍了如何正确使用inout关键字,并给出了示例代码。
                       

我们知道在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.youkuaiyun.com/jiangjunshow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值