型変換
CoddyのKotlinジャーニー「基礎」セクションの一部。レッスン 38/93。
readLine() は nullable な文字列(入力の終端では null)を返すため、数値を扱いたい場合は、その入力を変換する必要があります。Kotlin には、文字列を別の型に変換するための変換関数が用意されています。
文字列を整数に変換するには、toInt()を使用します。
fun main() {
val input = readLine()!!
val number = input.toInt()
println(number + 10)
}ユーザーが「5」と入力すると、プログラムはそれを整数 5 に変換し、その後 10 を加えて 15 を得ます。変換しない場合、"5" + 10 はテキストを連結して "510" を生成します。最初に変換することで、数値の加算になります。
小数には、toDouble()を使用します:
fun main() {
val price = readLine()!!.toDouble()
println("With tax: ${price * 1.1}")
}よりすっきりしたコードにするために、readLine()!! の直後に変換を直接つなげることができます。その他の便利な変換には、大きな整数に使う toLong() や、ブール値に使う toBoolean() などがあります。
これらの変換は、入力が有効であることを前提としています。数値を想定しているときに誰かが「hello」と入力すると、プログラムはクラッシュします。このようなエラーの処理については、コースの後半で学びます。
チャレンジ
簡単currentAgeとyearsToAddを文字列として受け取り、将来の年齢を整数として返す関数calculateFutureAgeを書いてください。
両方の文字列パラメーターを整数に変換して足し合わせ、結果を返してください。
パラメーター:
currentAge(String): 文字列としての現在の年齢(例: "25")yearsToAdd(String): 文字列として加算する年数(例: "10")
戻り値: 両方の値の合計(整数(Int))
自分で試してみよう
fun calculateFutureAge(currentAge: String, yearsToAdd: String): Int {
// ここにコードを書いてください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Kotlinプレイグラウンド