我对SwiftUI不接受>条件有疑问。
不确定我是否做错了某人。
例如接受!=或==,但不接受<或>条件。
if frequnecyInput > zeroValue {
Text("Length : \(number / (frequnecyInput ?? 0.00))")
.font(.largeTitle)
.color(Color.gray)
.frame(width: 300.0, height: 40.0)
.shadow(radius: 8.0)
.padding()
}
以上代码将无法编译。
if frequnecyInput != zeroValue {
Text("Length : \(number / (frequnecyInput ?? 0.00))")
.font(.largeTitle)
.color(Color.gray)
.frame(width: 300.0, height: 40.0)
.shadow(radius: 8.0)
.padding()
}
以上代码将编译。
我在做什么错了?
干杯。
答案 0 :(得分:1)
我想问一下您得到了什么错误消息,但这并不重要,因为SwiftUI(至少在beta3中)的编译错误没有帮助,通常只是红色鲱鱼。
我猜测,因为您有frequnecyInput ?? 0.00
声明frequnecyInput
是Optional<Double>
,在这种情况下!=
是合法的语句,但<
不是("Binary operator '>' cannot be applied to operands of type 'Double?' and 'Double'"
)。
为记录起见,以下代码为我编译并运行:
import SwiftUI
struct ContentView : View {
private var frequnecyInput: Double? = 1.0
private var zeroValue: Double? = 0.0
private var number: Double = 3.0
var body: some View {
if (frequnecyInput ?? 0.0) > (zeroValue ?? 0.0) {
return AnyView(Text("Length : \(number / (frequnecyInput ?? 0.00))")
.font(.largeTitle)
.color(Color.gray)
.frame(width: 300.0, height: 40.0)
.shadow(radius: 8.0)
.padding())
} else {
return AnyView(Text("None"))
}
}
}
希望下一个Beta(将于明天发布)将在某种程度上改善编译器错误消息。