0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

勉強ノード Kotlin(1)

Last updated at Posted at 2020-10-25

##Kotlinの変数宣言は?
2種類キーワードがある。

  • val
  • var

valキーワードで宣言した変数は一度値を割り当てした後に再度割り当てするのはできない。つまり、JAVAだったらFINALキーワードをつけて宣言した変数と同じ。
逆に、varで宣言した変数は何度も値の割り当てができる。

##Kotlinで変数を宣言してみよう!

Kotlin
var name: String = "Mori"
name = "Tanaka"
// セミコロンはつけてもいいし、つけなくてもエラーにならない
Kotlin
val age: int = 17
age = 30
// valで宣言した変数に2回も割り当てることはできないため、エラーになる
// int以外にもByte, Short, Long, Float, Doubleなども使える

##型の推論とは?
Kotlinでは変数の宣言し、型を明確に指定せずに宣言するのもできる。例えば、

Kotlin
var subject = "math"
upperCaseName = subject.toUpperCase()

上記のように型を指定しなかったsubject変数を宣言してもエラーにならない。subjectはコンパイラがコンパイルする際、変数の型をStringだと推論するため、toUpperCase()メソッドは正常に動作する。

実に便利そうだが、注意することもある。

Kotlin
var subject = "math"
subject.inc()
// コンパイルエラー発生

上記のコードで、String型に推論している変数subjectのメソッドincをコールしているが、incはString型には存在しないメソッドであり、コンパイル時エラーになってしまう。

##Nullable変数
初期値でNull値が持たないデータ型について、Null値を持つことを許可する変数

Kotlin
var grade: Strubg = Null
// コンパイルエラー発生

通常、上記で宣言するとエラーが発生するが、以下のようにNullable変数を宣言するとエラーが発生しない。

Kotlin
var grade: Strubg? = Null
// コンパイルエラーにならない

こうするとString型変数gradeにはNullかStringか2種類のデータを割り当てられる。

##条件分岐と変数宣言の結合
Kotlinでは変数の宣言とその値の割り当て(条件による)を一度の記述で全部解決できる。下はその例

JAVA ①
int score = 93;
String grade;

if (score >= 95) {
    grade = "A+";
} else if (score >= 90) {
    grade = "A";
} else {
    grade = "B+";
}

System.out.printLn(grade);
Kotlin ②
var score = 93
var grade: Strubg = if (score >= 95) {
    "A+"
} else if (score >= 90) {
    "A"
} else {
    "B+"
}

println(grade)

これよりも簡単にもできる。

Kotlin ③
var score = 93
var grade = when { // 型推論により、Stringは記載しなくても大丈夫
    score >= 95 -> "A+"
    score >= 90 -> "A"
    else        -> "B+"
}

println(grade)

①と②と③は機能的には完全に同じ処理をするが、③のように圧倒的に可読性良いコードにも実装できる。

##参考
参考1

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?