ios - swift中inout参数传入一个函数,在函数体内print怎么没有被执行?
本文介绍了ios - swift中inout参数传入一个函数,在函数体内print怎么没有被执行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
在一个交换函数中,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哪里去了???
解决方案
刚看题的时候,我也蒙了。
开了个 Playground 试了一下,才发现:
你调用的 swap 函数明明就是 Swift 自身提供的!
虽然你上面定义了一个新的 swap 函数。
故,解决方法就是,换个函数名……
顺便告诉你一下:
在 Swift 中,两个数值交换,你可以这样做
(a, b) = (b, a)
这篇关于ios - swift中inout参数传入一个函数,在函数体内print怎么没有被执行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文