let myRef = isTrue() ? &objectA : &objectB
错误:“使用无关的‘&’”
这可以在经典的 if/else 条件中完成,但不能在三元中完成。有谁知道为什么吗?
最佳答案
I have a function which updates a struct. This struct is passed as an inout myStruct parameter. The ternary operator is to determine which struct to pass to the function
啊。在原来的问题中这样说会很有帮助。
你不能像这样使用 &
因为 Swift 中的“地址”并不是真正的东西。如果您不想进入不安全指针,并且目标是使用输入参数 &objectA
或 &objectB
调用函数 f
,具体取决于在有条件的情况下,使调用本身成为有条件的:
isTrue() ? f(&objectA) : f(&objectB)
关于ios - 从 swift 三元运算符返回引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60780413/