ios - Swift 输入输出参数 - 用例

标签 ios swift swift2

我最近学习了 Swift 中的“输入输出参数”,我有问题想问你。

“In-Out Parameters”比 e.x. 更好的用例是什么? func 返回值,你可以分配给 var?

谢谢你的帮助。

最佳答案

我认为 inout 参数的一个很好的用例是 The Swift Programming Language 提供的 swapTwoInts 函数。 .

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

给定

var a = 0
var b = 1

你可以轻松调用

swapTwoInt(&a, b: &b)

场景 2:没有 inout 参数

另一方面,如果没有inout参数,函数应该写成如下(实际上更紧凑)

func swapTwoInt(a: Int, b: Int) -> (a:Int, b:Int) {
    return (a:b, b:a)
}

但使用需要 3 行代码而不是 1 行:

let swapped = swapTwoInt(a, b: b)
a = swapped.a // was swapped.b, fixed as suggested by Martin R
b = swapped.b

注意事项

如您所见,在场景 2 中,函数的部分逻辑需​​要在函数本身之外编写。这并不好,因为它会在每次调用函数时产生代码开销。

关于ios - Swift 输入输出参数 - 用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34062396/

相关文章:

objective-c - UIStackView 和 ViewWithTag

ios - 选择时会膨胀和收缩的不同单元格高度

ios - 是否可以使用 Swift 创建自定义键盘而不强制用户通过设置屏幕附加它?

ios - 动态更新Cordova.plist文件中的外部主机

ios:根据前一个 View 中使用的segue,与另一个 View 不同的segue

ios - 在 AppStore 上传 iOS 应用程序

ios - 类型 NSAttributedString 在 tableView 中没有下标成员

ios - 我如何引用以编程方式添加文本字段以从 Swift 内部获取数据?

swift - 如何在 Swift 中将二进制转换为十进制?

ios - EXC_BAD_INSTRUCTION(代码=EXC_1386,INVOP,子代码=0x0)错误