ios - 无法将不可变值作为 inout 参数 : literals are not mutable, 传递,为什么?

标签 ios swift function

我想创建一个函数来交换 2 个变量!但是对于新的 swift,我不能使用“var”....

import UIKit

func swapF(inout a:Int, inout with b:Int ) {
    print(" x = \(a) and y = \(b)")
    (a, b) = (b, a)

    print("New x = \(a) and new y = \(b)")
}

swapF(&5, with: &8)

最佳答案

文字不能作为 inout 参数传递,因为它们本质上是不可变的。

改用两个变量:

var i=5
var j=8
swapF(a:&i, with: &j)

此外,对于最后的 Swift 3 快照之一,inout 应该放在类型附近,函数的原型(prototype)变为:

func swapF(a:inout Int, with b:inout Int ) 

关于ios - 无法将不可变值作为 inout 参数 : literals are not mutable, 传递,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38295620/

相关文章:

swift - 包含所有扩展方法的 Swift 模块

javascript - 将参数作为数组元素传递

c++ - 正确的 set_socket_init_handler 语法或修改源代码以使用 websocket++ 打开 TCP_NODELAY

iphone - 与 insertSubView 的索引值混淆

ios - viewDidDisappear 未调用

ios - Xcode, swift ;检测 UIWebView 中的超链接点击

arrays - 数组中的计算模式(多于一种模式)

ios - 我需要无限旋转 View 直到被告知停止

ios - 如何在应用程序加载时在启动屏幕上播放 MP4 视频

c++ - 循环中的函数,参数不变