ここまでは
空のアクティビティの生成イベントを利用して画面に値を表示する方法がわかったところで次に進みます。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val tvMain = findViewById<TextView>(R.id.tvMain)
tvMain.setText("Hello Kotlin World!")
}
}
MainActivity.kt を上のように2行追加すると Hello World!の代わりに Hello Kotlin World!が表示されます。
このtvMain.setText("Hello Kotlin World!")
の所を変えて色々試して見ましょう。
Kotlinの変数
setTextの引数に直接値を渡さずに変数strを使って渡してみましょう。
その上の行を参考に
val str = "Hello Kotlin World!"
tvMain.setText(str)
たったこれだけで簡単に実現できました。でも色々疑問も出てきますね。
Kotlinは「;」セミコロンが要らない
様々な言語では命令文の区切りとして必ず「;」セミコロンを付ける必要がありましたがKotlinでは付けません。付けてもエラーにはなりませんが付けないのが一般的のようです。
※VisualBasicもなかったような
Kotlinは変数の定義場所が自由
変数の定義は最初に行う言語が多いですが、Kotlinではどこに書いても構いません。
Kotlinでの命名規則
これを記載している段階でまだ仕様や規約を探しきれていませんが
1.変数は小文字で始まる
2.変数の型は大文字で始まってる
3.定数は全て大文字で命名の区切りは「_」アンダーバーで区切る
とされていてそれ以外はJavaの命名規則に従っているようです。
Kotlinでの型宣言
C言語などで 整数型の変数 i を宣言しようとすると
int i;
という書き方になります。これがKotlinだと
i : Int
と宣言と変数の位置が逆になります。Kotlinの宣言には初期化が必要なので
i : Int = 0
のように記述します。
PascalやDelphiのような連続定義は出来ないようです。
i,j : Int; // KotlinではNG
Kotlinの型推測
例題では
val str = "Hello Kotlin World!"
のように型を書きませんでした。これは初期化の時に渡した値で型が推測されるためです。
文字列と数値は渡す値で区別しやすいですが、間違って型が推測されるよりは型指定した方が良いように思えます。
Kotlinで良く使う変数型
var str : String= "漢字対応" // 文字列
var int : Int = 0 // 32bit符号付き数値
var long : Long = 0L // 64bit符号付き数値
var double : Double = 0.0 // 64bit浮動小数点数値
StringとIntはよくわかりますが LongとDoubleは初期化する数値の表現に注意が必要です。
Longの場合は数値の後ろに「L」をDouble型の場合は小数点以下が無くても 0.0という表現にしないとエラーになります。
このように初期化する値の表記が異なるので型の指定が無くても推測されるのです。
Int型の初期化時の書き方はさらに
var dec : Int = 16
var hex : Int = 0x10
var bin : Int = 0b00010000
10進、16進、2進で表現した数値を代入することが出来ます。
10進数の10、16進数の 10h、2進数の 0001 0000 はどれも同じ値になります。