代码如下:
protocol A {
var a: Double { get set }
}
struct B: A {
var a: Double = 1
var b: Double = 2
}
class C {
var b: A = B()
func setValue(_ value: Double) {
b.a = value
(b as! B).b = 1 // got an error
}
}
如何设置b.b
中的setValue
值?尝试进行设置时,出现编译错误:
不能分配给'Double'类型的不可变表达式
我的B是struct
,所以我不能使用protocol A: class {
答案 0 :(得分:1)
可能是编译器故障尝试此方法,您也可以使struct B成为覆盖值的类
var rr = (b as! B)
rr.b = 1.0