条件语句不编译并创建错误

时间:2019-07-15 23:51:52

标签: conditional-statements swiftui

我对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()
        }

以上代码将编译。

我在做什么错了?

干杯。

1 个答案:

答案 0 :(得分:1)

我想问一下您得到了什么错误消息,但这并不重要,因为SwiftUI(至少在beta3中)的编译错误没有帮助,通常只是红色鲱鱼。

猜测,因为您有frequnecyInput ?? 0.00声明frequnecyInputOptional<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(将于明天发布)将在某种程度上改善编译器错误消息。