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

在使用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中的方法是有区别的。

你可能感兴趣的:(iOS,Swift)