1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kotlinを書くための基礎知識

Last updated at Posted at 2024-06-04

はじめに

この記事では、Kotlin学びたての筆者が、Kotlinの基礎知識をまとめています。
Kotlinを書けるようになることは、Androidアプリの開発において第一歩となるはずです。
将来のAndroidエンジニアを見据えて、共に頑張りましょう!

環境構築をせずにkotlinを試すには、Kotlinのプレイグラウンドがおすすめです。
文中にあるコードをコピペするだけで、手軽に動作確認が行えます。

対象読者

  • Androidエンジニアを目指している方
  • Kotlinの基礎知識をサクッと学びたい方
  • 変数や関数など、ある程度の用語は理解している方

それでは、一緒に始めていきましょう。

変数

Kotlinの変数宣言は、定数がval, 変数がvarから宣言します。

variable.kt
val COUNT_NUMBER: Int = 2
var countNumber: Int = 2

定数名はすべて大文字で宣言し、単語と単語の間はアンダースコアで繋ぎます。
また、値を更新しようとするとVal cannot be reassignedが発生します。
一方、変数名はキャメルケースで宣言し、1文字目は小文字から始めます。

型推論

変数は型を指定しなくても、Kotlinが初期値によって推測してくれます。
以下の場合、変数宣言に型を書いていませんが、それぞれInt, Stringの型だと推測してくれます。
これを型推論と言います。

variable.kt
var countNumber = 2
var greeting = "おはよう"

型を明示しないことによる賛否はあるかと思います。
あくまでもKotlinには型推論が備わっていると捉えておき、チームの方針に沿うのが良いのだと考えます。
ちなみに、繰り返しになりますが、Kotlinは初期値から型推論を行うため、初期化しない場合には型の指定が必須となります。

variable.kt
/* 初期化せずに型推論させようとするとエラーになる */
var countNumber
// This variable must either have a type annotation or be initialized.

関数

関数はfunと書き始めることで宣言できます。
関数の返り値がある場合は、中かっこの前に返り値の型を指定します。
また、関数内にreturnを必ず書いて、返り値の型と同様の型で宣言した変数で受け取ります。

function.kt
fun main() {
    var name = "Kotlin"
    var greeting: String
    greeting = letsGreeting(name)
    println(greeting)
}

fun letsGreeting(name:String): String {
    return "Hello, $name"
}

Unit型を返す関数

返り値の型指定をしなかった場合、Unit型が返ります。

noreturn.kt
fun noReturn(): Unit {
    plintln("何も返却しない")
}

Unit型は結果として何も返らないため、Javaのvoidと同様の関数宣言になります。
また、Unitを省略して書くことができます。

noreturn.kt
// 前述のコードと同義です
fun noReturn() {
    plintln("何も返却しない")
}

名前付き引数

名前付き引数を使うと、どのパラメータに引数を渡すのかを明確にできます。
例えば以下の関数をprofile(19, 4, 2)と呼び出した場合、パラメータが何であるか不明瞭です。

multiArguments.kt
fun profile(age: Int, numberOfFamilies: Int, favoriteNumber: Int) {
    println("年齢: $age\n家族の人数: $numberOfFamilies\n好きな数字: $favoriteNumber")
}

これを、profile(age = 19, numberOfFamilies = 4, favoriteNumber = 2)のように呼び出すことができます。
また、名前付き引数は順不同で書くこともできます。
profile(favoriteNumber = 2, age = 19, numberOfFamilies = 4 )

デフォルト引数

関数宣言する際に、引数のデフォルト値を設定できます。
この場合、呼び出し元から引数が渡ってこなければ、それが使用されます。

defaultArguments.kt
fun main() {
    profile()   // デフォルト引数が使われる
    profile(21) // ageのみ引数が渡り、残りはデフォルト引数が使われる
    profile(numberOfFamilies = 2)  // numberOfFamiliesのみ引数が渡り、残りはデフォルト引数が使われる
}
fun profile(age: Int = 20, numberOfFamilies: Int = 5, favoriteNumber: Int = 3) {
    println("年齢: $age\n家族の人数: $numberOfFamilies\n好きな数字: $favoriteNumber")
}

次回予定

この記事に対して以下を追記予定です。

  • 条件分岐
  • nullについて
  • クラスとオブジェクト
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?