2017-06-02 7 views
0

数値を文字列として入力したいと思います。文字列を返すreadLineを使用していますか?次に、入力されたStringをintに変換したいIntに変換します。いずれかのオプションがnilを返した場合は、エラーを出力します。それ以外の場合は、Intを使用します。次のコードは動作しますが、より良い方法が必要です。何か案は?オプションを最小化する方法

print ("Enter number: ", terminator:"") 
let number = readLine() 

if number != nil && Int (number!) != nil 
{ 
    let anInt = Int (number!)! 
} 
else 
{ 
    print ("Input Error") 
} 

答えて

3

あなたは明らかにそれを回すことができ、例えば、

guard let string = readLine(), let number = Int(string) else { 
    print("input error") 
    return 
} 

// use `number`, which is an `Int`, here 

readLine応答のアンラップとIntへの変換を組み合わせて、必ず数値変換は、単一guardステートメントに成功することができあなたが望むならば周り:

if let string = readLine(), let number = Int(string) { 
    // use `number`, which is an `Int`, here 
} else { 
    print("input error") 
} 
+1

別のアプローチ: '{$ 0}} else {...' – Alexander

関連する問題