您的位置:首页 > 移动开发 > Swift

Swift学习笔记--关于swift中In-Out关键字的理解

2016-09-23 11:21 656 查看
在使用swift语言的函数时发现了这样一个关键字:In-Out(输入输出)参数,它的作用是通过函数修改参数的值。其具体的解释如下:

变量形参只能在函数本身内改变。如果你想让函数改变形参值,并想要在函数调用结束后保持形参值的改变,那你可以把形参定义为in-out形参。

函数定义:

func swapTwoInts(a:inoutInt,b:inoutInt){
    let temporary = a
    a = b
    b = temporary
}
var oneInout =30
var anotherInout =60
swapTwoInts(a: &oneInout, b: &anotherInout)
个人认为其实上述代码就类似于oc中以指针作为参数的函数:

- (void)viewDidLoad {
    [super
viewDidLoad];
   
NSInteger a =
20;
   
NSInteger b =
30;
    [self
swapTwoIntsFirstNum:&a
SecondNum:&b];
}
-(void)swapTwoIntsFirstNum:(NSInteger
*)num1 SecondNum:(NSInteger *)num2{
   
NSInteger a = *num1;
    *num1 = *num2;
    *num2 = a;
}

上述两个方法都是对函数的形参值进行改变,并且调用结束后形参的值保持不变。

上述两个方法在调用时都是用&符号表示地址,而区别在于在swapTwoInts函数体内部我们不需要处理指针类型,而是可以直接对参数进行操作这和oc中的方法是有区别的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: