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

How do you change an outside variable inside a function passing a parameter Noobie in swift

如何通过传递参数更改函数内部的外部变量?; Noobie swift

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
}