recherche

Maison  >  Questions et réponses  >  le corps du texte

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哪里去了???

大家讲道理大家讲道理2890 Il y a quelques jours489

répondre à tous(1)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:54:05

    J'étais également confus lorsque j'ai lu la question pour la première fois.
    J'ai ouvert une aire de jeux et je l'ai essayé, pour découvrir :

    La fonction swap que vous avez appelée est évidemment fournie par Swift lui-même !

    Bien que vous ayez défini une nouvelle fonction d'échange ci-dessus.

    La solution est donc de changer le nom de la fonction...


    Au fait, laissez-moi vous dire :
    Dans Swift, pour échanger deux valeurs, vous pouvez faire ceci

    (a, b) = (b, a)

    répondre
    0
  • Annulerrépondre