ios - swift中inout参数传入一个函数,在函数体内print怎么没有被执行?
大家讲道理
大家讲道理 2017-04-17 17:52:05
0
1
485

在一个交换函数中,a和b的值进行交换,使用inout参数传值,这样函数对参数所做的修改将会影响参数本身,但是为什么在swap函数里的print没有被执行?

func swap(inout a : Int , inout b : Int){
    let tmp = a
    print("123")
    a = b
    b = tmp
    
}

var a = 6
var b = 9
print("交换之前,a的值是\(a),b的值是\(b)")
swap(&a, &b)
print("交换之后,a的值是\(a),b的值是\(b)")

输出的结果是:
交换之前,a的值是6,b的值是9
交换之后,a的值是9,b的值是6

swap函数里的print哪里去了???

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(1)
伊谢尔伦

最初に質問を読んだとき、私は混乱しました。
プレイグラウンドを開いて試してみましたが、次のことがわかりました:

あなたが呼び出すスワップ関数は明らかに Swift 自体によって提供されます。

上で新しいスワップ関数を定義しましたが。

したがって、解決策は関数名を変更することです...


ところで、言っておきます:
Swift では、2 つの値を交換するには、次のようにすることができます

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート