如何在快速传递参数Noobie的函数内更改外部变量

问题描述

如何通过传递参数来改变函数内部的外部变量?快速的Noobie

var varIsTrue:Bool = true

import UIKit
extension UIDevice {

class ViewController: UIViewController {
 override func viewDidLoad() {

  changeVar(varIsTrue,false)
     
 }

 func changeVar(_ varName:?,_ arg:Bool){
         varName = arg // Xcode cannot assign to value: 'varName' is a 'let' constant

             }
// varName:? Don't kNow if the question mark should be a :String some kind of argument or what?
           }
      }

解决方法

假设您的示例只是一个抽象,并且您试图理解从函数内部更改变量的概念,那将是一个解决方案。

就像评论中已经提到的那样,您需要使用inout并传递“外部变量”的引用(由前导&表示)。

var varIsTrue: Bool = true

changeVar(&varIsTrue,false)

func changeVar(_ property: inout Bool,_ arg: Bool){
    property = arg
}