2017-08-03 14 views
0

データ検証機能をセットアップしようとしていますが、私のコードでは次のエラーが発生します: "二項演算子 '>'は二重 '?オペランド "初心者スウィフト3データ検証

func validateDouble(text: String) -> Bool { 
    var result = false 

    // test input to see if it is a positive Double once text is converted 
    if Double(text) > 0.0 { 
     result = true 
    } 
} 

私は困惑しており、何か助けに感謝します。

おかげで、

ナズ

答えて

2

あなたはDouble型に文字列を変換する際に、それがnilであってもなくてもよいので、それは、オプションの値を返すので。正確な値との比較は不可能です。このようにしてください。

func validateDouble(text: String) -> Bool { 
    var result = false 

    // test input to see if it is a positive Double once text is converted 
    if let doubleValue = Double(text) { 
     if doubleValue > 0.0 { 
     result = true 
     } 
    } 
} 
+0

うわー試してみてください - スーパー迅速な答えに感謝します! !!私は後で無限の可能性に対処するつもりでしたが、無駄に対処することが遅れているのが迅速な実行可能な戦略ではないことがわかりました。本当にありがとうございます - 答えは完璧です! – Nas

+0

@Nasようこそ、あなたは素早く初心者だと言ったので、私はこの答えを遠くに詳述しています。そうでなければ、短い方法でやり遂げることもできます。 – Jaydeep

+0

@Jaydeepを知りたい場合は、より迅速な機能のようなwhere節を使用してif条件を変更することもできます( '、'を使用して)。例えば(let doubleValue = Double(text)、doubleValue> 0.0 {}の場合) –

1

あなたは変換された値がnilでないことを確認チェックする必要があり、これはトリックを行う必要があります。

func validateDouble(text: String) -> Bool { 

    // test input to see if it is a positive Double once text is converted 
    guard let value = Double(text), value > 0.0 else { return false } 
    return true 

} 
1

が、これは

if let doubleValue = Double(text), doubleValue > 0.0 { 
    result = true 
}