ことりと凛とKotlinと

ことりちゃんと凛ちゃんが(陰ながら筆者も)Kotlinを勉強します

ことりと凛とKotlinと
ことりちゃんと凛ちゃんが(陰ながら筆者も)Kotlinを勉強していきます

変数を使う

ことり「凛ちゃん,そろそろ続きをしていこうと思うけど,休憩はもういいかな?」
凛「うん! 凛はもうばっちりだにゃ! ことりちゃんが持ってきてくれたクッキーのおかげだよ」
ことり「気に入ってもらえてよかった♪ それじゃあ,続きからいこっか♪ 今度はさっきの表示を発展させてみるよ」
凛「さっきのって書いた文字がそのまま表示されるやつのこと?」
ことり「うん♪ helloWorld.ktをこんな感じに書き換えてね」

fun main(args: Array){
  var printString = "Hello World"
  println(printString)
}

凛「var printString = "Hello World"が前のプログラムには無かったね 何か意味があるのかにゃ?」
ことり「ちゃんとあります これは・・・って説明する前に何が表示されるか予想してから実行してどうなるか確認してみようか」
凛「凛はprintStringが表示されると思うにゃ! それじゃあ,コンパイルして実行っと・・・」

Hello World

凛「あれ? 全然違うのが表示されたよ? ことりちゃん,これであってるの?」
ことり「うん,これであってるよ 今回新しく出てきたvar printString = "Hello World"Hello Worldが出てくるの」
凛「?? どういうこと?」
ことり「var printString = "Hello World"だけど,これはprintString"Hello World"を入れて,println(printString)printStringに入ってる"Hello World"が表示されたの」
凛「・・・文字が多くてわからないにゃ・・・」
ことり「うーん,絵にしたらこんな感じかな」

f:id:Luna_Chevalier:20170220003118j:plain

凛「printStringっていう入れ物に"Hello World"がしまわれてる! println(printString)で入れ物の中身を表示してるのかにゃ?」
ことり「凛ちゃん正解♪ これで伝わらなかったら,どうしようかと思ってたけど,心配しなくてよかったね」
凛「やっぱりことりちゃんの教え方が上手だからだよ」
ことり「ありがと♪ ちなみに,printStringのような入れ物を変数って言うから覚えていてね それじゃあ,次はこんな感じに書き換えましょう」

fun main(args: Array){
  var printString = "Hello World"
  println(printString)
  printString = 3 + 6
  println(printString)
}

凛「4行目辺りにprintString = 3 + 6があるから,printStringの中身を入れ替えているのかな?」
ことり「それじゃあコンパイルしましょう♪」

helloWorld.kt:4:17: error: type mismatch: inferred type is Int but String was expected`
  printString = 3 + 6
                ^

凛「あれ? いつもと表示が違う・・・」
ことり「これは・・・ 変数に入れられないって言ってるね」
凛「入れられない物があるの?」
ことり「変数ににはというのがあって,これによって変数に入れられる値と入れられない値があるの 今回は最初にvar printString = "Hello World"で文字を入れたから,3 + 6の数字は入れられなくなっちゃったの」
凛「代入の許可ぁ? 認められないわぁ」
ことり「急に絵里ちゃんのモノマネをしてきたね・・・」
凛「こうしたほうが覚えられやすいと思って!」
ことり「覚えられやすいなら,それでいいかな・・・」
凛「でも,3 + 6は表示できないの?」
ことり「一手間加えたら表示できるよ 一番良さそうなのはこんな感じにすればいいかな」

fun main(args: Array){
  var printString = "Hello World"
  println(printString)
  printString = (3 + 6).toString()
  println(printString)
}

凛「なんか.toString()みたいなのがついているんだけど,これは?」
ことり「これは計算した数値を文字にする関数って言うものの一つだよ・・・って言ってわかる?」
凛「関数って凛たちが授業で習う数学に出てくるあれ?」
ことり「おぉ,大体あってるよ♪ 数学に出てくるのはxに数値を代入して,yを求めることが多いけど,プログラミングも同じだよ 何か関数に値を渡して,その関数に対応した値が求められるの」
凛「なるほどにゃ」
ことり「それじゃ,これをコンパイルして何も表示されないのを確認したら,実行してみよう」
凛「コンパイルして,何も出なかったので実行にゃ!」

Hello World
9

凛「今度はちゃんと表示されたにゃ!」
ことり「お疲れ様♪ 今日はちょっと盛りだくさんだったね」
凛「ちょっと変数で覚えることが多いにゃ・・・」
ことり「どんなプログラムでも変数は絶対に使うから,忘れちゃだめだぞ♪」
凛「忘れないように頑張る!」