型変換
CoddyのSwiftジャーニー「基礎」セクションの一部。レッスン 34/86。
readLine() は String? を返すため、計算を行うには、その文字列を数値に変換する必要があることがよくあります。Swift では明示的な型変換が必要です。文字列を自動的に整数や Double に変換することはありません。
文字列を整数に変換するには、Int()初期化子を使用します。変換に失敗する可能性があるため(文字列に数字ではなく文字が含まれている場合があります)、オプショナル値が返されます。
let input = "42"
if let number = Int(input) {
print(number + 10) // 出力: 52
}小数には、Double()を使用します。
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // 出力: 39.98
}これは、readLine() と数値演算を組み合わせるときに特に便利です。アンラップを連結できます:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}if let文のコンマは、両方の条件が成功する必要があることを意味します。つまり、入力が存在し、整数に変換可能でなければなりません。
チャレンジ
簡単2つのinputを読み取ります。1つはstringとしての小数で、もう1つはstringとしての整数です。それらを適切な数値型にConvertし、their productをcalculateします。
次のinputを受け取ります:
- 1行目:小数(例:
"3.5") - 2行目:整数(例:
"4")
readLine()を使用して両方のinputを読み取ります。1つ目のinputをDoubleにConvertし、2つ目をIntにConvertします。その後、それらを掛け合わせ、結果をprintします。
inputとConvertされた値の両方を安全にアンラップするため、連続したオプショナルバインディングを使用するif letを使います。
Print:2つの数値のproductをDoubleとして出力します
自分で試してみよう
// 小数を文字列として読み取る
if let decimalString = readLine() {
// 整数を文字列として読み取る
if let intString = readLine() {
// TODO: 以下にコードを書いてください
// if let を使って decimalString を Double に、intString を Int に変換する
// 次にそれらの積を計算して出力する
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Swiftプレイグラウンド