abcdefg12345
オリジナルポスター- 2013年7月10日
- 2017年10月21日
迅速な4
コード:
if (Double(MyValue) > 10) { // value is bigger than 10 } else { // do something else }
後でフォーマットできるように文字列である必要があるため、可変文字列を使用しています。次のように定義しました。
コード:
var MyValue = ''
abcdefg12345
オリジナルポスター- 2013年7月10日
- 2017年10月21日
コード:
let CheckValue = Double(MyValue)! if CheckValue > 10 { }
0002378
一時停止
- 2017年5月28日
- 2017年10月23日
また、オプションには利点がありますが、コンピューターを餃子の上端にぶつけたくなることもあります。
しかし、スウィフトが本当にお尻を蹴るのはクロージャの部門です...そうそう! Javaにもそれらがありますが、...
そしてもちろん、Swiftが型とそれらの厄介なセミコロンの宣言においてそれほど厳しくないという事実...素晴らしい!
反応:abcdefg12345
0002378
一時停止
- 2017年5月28日
- 2017年10月24日
新しい変数は必要ありません。 '!'を追加するだけですあなたのDouble(文字列)に、そしてそれは動作します。
この場合、Swiftが愚かであるというのは間違っていたと思います。しかし、私はそのようなコンパイラの苦情の多くのケースに遭遇しました(2つの異なる数値タイプを比較することができません)。
グリーン
- 2015年7月15日
- フォートワース
- 2017年10月24日
または、オプションのバインディングを使用して値をアンラップできます。強制アンラップを使用する前に、まずこれらの方法の1つを試してみます
gnasher729
一時停止
- 2005年11月25日
- 2017年10月24日
maculateConceptionは次のように述べています。言語としてのSwiftは、特に笑えることがあると思います。 Javaプログラミングから来ています。そして、あなたはその最良の例の1つを持ち出しました。それはまったく無知です。問題は、OPがオプション値であるSwiftの基本機能を認識していないことです。 Stringに数値が含まれていない場合、コンストラクターDouble(String)は明らかに失敗する可能性があります。そのため、Double(String)は、Double型の結果を生成せず、生成できませんが、Double型の結果を生成しますか? 、これはオプションのDoubleです。また、オプションのDoubleをIntと比較することはできません。
あなたの「解決策」は本当に、本当にひどいです。 NS !意味 'この変換は成功すると確信しています。そうでない場合は、アプリをクラッシュさせてください。 d = Double( '1234x')とします!ただクラッシュします。意図的に。あなたがnilをチェックしなかったので、それはnilでした。
正しい方法は、エラーをチェックすることです。例えば
d = Double(MyValue)とすると、d> 10 {
// MyValueに数値が含まれており、数値は> 10です。
} そうしないと {
// MyValueに数値が含まれていないか、数値が含まれていました<= 10.
}
安全で実際に機能するコードを書く価値があると思うなら、Swiftが適切な言語です。
0002378
一時停止
- 2017年5月28日
- 2017年10月24日
gnasher729は言った:それは全く無知です。問題は、OPがオプション値であるSwiftの基本機能を認識していないことです。 Stringに数値が含まれていない場合、コンストラクターDouble(String)は明らかに失敗する可能性があります。そのため、Double(String)は、Double型の結果を生成せず、生成できませんが、Double型の結果を生成しますか? 、これはオプションのDoubleです。また、オプションのDoubleをIntと比較することはできません。
学校でいじめられましたか?あなたは私を攻撃せずに応答することができなかったので、あなたはかなり低い自尊心を持っているようです。
これが私の最初で最後のあなたへのコミュニケーションになります。あなたへの提案-もっと礼儀正しい方法でコミュニケーションをとってみてください。そうすれば人生は素晴らしいものになります。気をつけて。
グリーン
- 2015年7月15日
- フォートワース
- 2017年10月25日
gnasher729によると:正しい方法はエラーをチェックすることです。例えば
d = Double(MyValue)とすると、d> 10 {
// MyValueに数値が含まれており、数値は> 10です。
} そうしないと {
// MyValueに数値が含まれていないか、数値が含まれていました<= 10.
}
これはあいまいです-値が<= 10 should produce different results from the value being nil? To be fair, the OP's post is ambiguous as they were forcing the unwrap, meaning a nil value would crash. However in most business cases, a nil value would be handled differently (safely) from an insufficient value.
よりクリーンな方法は次のとおりです。
コード:
// Handle your unwrapping here, and specify what to do in case of a nil guard let d = Double(MyValue) else { return } // Then implement your if statement if d > 10 { // Do what you want if d > 10 } else { // Do what you want if d <= 10 }
ただし、MyValueは最初からDoubleとして保存し、必要なフォーマットを処理するために後でNumberFormatterを実装する必要があると思います。これは、コードを読んでしまう人にとっては、認知的負担がはるかに少なくなります。
gnasher729
一時停止
- 2005年11月25日
- 2017年10月26日
maculateConceptionは言った:あなたは学校でいじめられましたか?あなたは私を攻撃せずに応答することができなかったので、あなたはかなり低い自尊心を持っているようです。
これが私の最初で最後のあなたへのコミュニケーションになります。あなたへの提案-もっと礼儀正しい方法でコミュニケーションをとってみてください。そうすれば人生は素晴らしいものになります。気をつけて。
まあ、私はあなたを攻撃しませんでした。私はあなたの投稿を攻撃しました。これは、あなたがSwiftについてほとんど知らないことを示しており、非常に危険な推奨事項が1つ含まれています。 NS
SAIRUS
に
- 2008年8月21日
- 2017年10月26日
入れる
- 2018年4月14日
- 2018年4月14日
1) '!'マークを追加することで、この値が正確なintになることを示すことができます。
コード:
if (Double(MyValue)! > 10) { // }
2)値を定義するときにタイプを指定できます。 コード:
let value: Int = Double(MyValue)! if (value > 10) { // }
に atmenterprises
- 2006年1月28日
- 2018年4月27日
ynstekは言った:Swift、あなたの値が正確にintであるかどうかはわかりません。確認するための2つのオプションがあります。
1) '!'マークを追加することで、この値が正確なintになることを示すことができます。
コード:if (Double(MyValue)! > 10) { // }
2)値を定義するときにタイプを指定できます。
コード:let value: Int = Double(MyValue)! if (value > 10) { // }
ダブルにキャストされた文字列をInt変数に割り当てようとしているため、#2の例は失敗すると思います。また、MyValueがnilではないと想定しているため、nilまたは非数値の場合にランタイムエラーが発生する可能性があります。
あなたの#1の例の説明も正しくありません。感嘆符は値をIntに変換しません。オプションの変数の値をアンラップします。あなたの例では、MyValueがnilまたは非数値でない場合にのみ、IntではなくDouble値になります。
人気の投稿