swift学习日志——输入输出参数

swift学习日志——输入输出参数,第1张

概述输入输出参数(In-Out Parameters) 变量参数,正如上面所述,仅仅能在函数体内被更改。如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。 定义一个输入输出参数时,在参数定义前加 inout 关键字。一个输入输出参数有传入函数的值,这个值被函数修改,然后被传出函数,替换原来的值。 输入输出参数(In-Out Parameters)

变量参数,正如上面所述,仅仅能在函数体内被更改。如果你想要一个函数可以修改参数的值,并且想要在这些修改在函数调用结束后仍然存在,那么就应该把这个参数定义为输入输出参数(In-Out Parameters)。

定义一个输入输出参数时,在参数定义前加inout关键字。一个输入输出参数有传入函数的值,这个值被函数修改,然后被传出函数,替换原来的值。

你只能传递变量给输入输出参数。你不能传入常量或者字面量(literal value),因为这些量是不能被修改的。当传入的参数作为输入输出参数时,需要在参数名前加&符,表示这个值可以被函数修改。其实跟C语言中的形参十分相似。

注意
输入输出参数不能有默认值,而且可变参数不能用inout标记。如果你用inout标记一个参数,这个参数不能被var或者let标记。

下面是例子,swapTwoInts(_:_:)函数,有两个分别叫做ab的输入输出参数:

func swapTwoInts(inout a: Int,inout _ b: Int) {    let temporaryA = a    a = b    b = temporaryA}

这个swapTwoInts(_:_:)函数简单地交换ab的值。该函数先将a的值存到一个临时常量temporaryA中,然后将b的值赋给a,最后将temporaryA赋值给b

你可以用两个Int型的变量来调用swapTwoInts(_:_:)。需要注意的是,someIntanotherInt在传入swapTwoInts(_:_:)函数前,都加了&的前缀:

var someInt = 3var anotherInt = 107swapTwoInts(&someInt,&anotherInt)print("someInt is Now \(someInt),and anotherInt is Now \(anotherInt)")// prints "someInt is Now 107,and anotherInt is Now 3"

从上面这个例子中,我们可以看到anotherInt的原始值在swapTwoInts(_:_:)函数中被修改,尽管它们的定义在函数体外。

注意
输入输出参数和返回值是不一样的。上面的swapTwoInts函数并没有定义任何返回值,但仍然修改了anotherInt的值。输入输出参数是函数对函数体外产生影响的另一种方式。

以上内容选自The Swift Programming Language 官方文档

总结

以上是内存溢出为你收集整理的swift学习日志——输入输出参数全部内容,希望文章能够帮你解决swift学习日志——输入输出参数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1081479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存