【Kotlin】基本構文まとめ!Web上で動作する実行環境Playgroundの使い方
この記事からわかること
- Kotlinの基本構文
- 変数の使い方
- 定義済みのデータ型
- Web上でKotlinの動作確認
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
Kotlinを学び出した私ですが、他のプログラミング言語と構文や変数の使い方が混じらないように整理しながらまとめていきたいと思います。
Web上でKotlinの動作確認
KotlinはWeb上で動作確認ができるPlaygroundという実行環境が提供されています。誰でも無料でアクセスできるのでKotlinの動作を少し確認したい時や処理の流れをつかみたい時などに利用可能です。
コードはmain
メソッドの中に記述していき、右側のRunボタンをクリックすることで実行できます。出力結果やエラーなどは下部に表示されるようになっています。
Kotlinの変数の宣言方法
Kotlinでは変数(変更可能な入れ物)はvar
を使って宣言します。
変数の初期値を宣言する
var user = "ame"
変数の型と初期値を宣言する
var user:String = "ame"
Kotlinでは宣言された型とは異なる型の値を入れようとするとエラーになります。
var user:String = "ame"
user = 2
error: The integer literal does not conform to the expected type String
また型宣言をしていない変数は初期値に格納された値の型が自動的に宣言されます。これを型推論と呼びます。
var user = "ame" // この時点で String型になる
user = 2
error: The integer literal does not conform to the expected type String
型変換(キャスト)
変数から値を取り出すときにデフォルトの型とは別の型に変換する(キャスト)こともできます。キャストするにはas 型名
の形式で記述します。
var user:String = "ame"
var num:Int = 2
user = num as String
computedプロパティ
computedプロパティ(コンピューテッドプロパティ)とは計算された値を返す変数です。Kotlinではval
キーワードとget
メソッドを使用して定義します。あくまで状態を管理するプロパティの一種なので関数(振る舞い)との使い分けをする必要があります。
class Circle(val radius: Double) {
val area: Double
get() = Math.PI * radius * radius
}
fun main() {
val circle = Circle(5.0)
println("円の面積: ${circle.area}")
}
Kotlinの変数の型の種類
データ型
型名 | 概要 | 例 |
---|---|---|
String | 文字列型 | "Kotlin" (ダブルクォーテーションで囲む) |
Char | 文字型(1文字) | 'k' (シングルクォーテーションで囲む) |
Int | 整数型 | 23 |
Double | 浮動小数点数型 | 5.3 |
Boolean | 真偽型 | true |
Char型は1文字1文字に対する型であり、String型はCharacter型の集合です。
また数値の型に関しては「データ長」によってさらに型名が分かれています。
型名 | データ長 |
---|---|
Byte | 8ビット |
Short | 16ビット |
Int | 32ビット |
Long | 64ビット |
Float | 32ビット (浮動小数点数型) |
Double | 64ビット (浮動小数点数型) |
データ長を指定すると格納できる数値の大きさに制限がかかり、超えてしまうとオーバーフローが発生しパースエラーになります。
var score:Byte = 127 // OK
var score:Byte = 128
error: The integer literal does not conform to the expected type Byte
コレクション型
コレクション型と書きましたが配列はコレクション型ではありませんでした。
型名 | 概要 | 例 |
---|---|---|
Array | 配列型 | arrayOf("ame","kasa") |
List | リスト型 | listOf(1,2,3,4) |
Set | Set型 | setOf(1,2,3,4,3) |
Kotlinには配列やリスト型など、複数の値を1つにまとめて保持するコレクション型が用意されています。Set型は記述方法は配列と同じですが、順序がなく重複のないデータを扱うための型です。なので重複のある配列をSet型で定義すると重複値は自動で削除されてしまいます。
var nums = setOf(1,2,3,4,3)
print(nums) // [1, 2, 3, 4]
定数を宣言する
定数とは宣言後値を変えられない値のことです。変数はvar
でしたが、定数はval
を使って宣言します。似ていて間違えやすいので注意してください。
val user = "ame"
宣言後に値を書き換えようとするとパースエラーになります。
val user = "ame"
user = "fure" // 書き換えを試みる
error: Val cannot be reassigned
変数同士や変数と文字を結合する
変数同士の結合(String)
var greeting = "Hello"
var user = "ame"
print(greeting + user) // Helloame
変数と文字列の結合(String)
var greeting = "Hello"
print(greeting + "ame") // Helloame
変数(Int)と文字列の結合
var greeting = "Hello"
var year = 2023
print(greeting + year) // Hello2023
変数を文字列に埋め込む
変数の結合を意識せずとも{$変数名}
を使えば文字列の中に埋め込むこともできます。
var user = "ame"
print("Hello {$user} さん") // Hello ame さん
また文字列と変数の境界が識別しやすい場合は{}
を外しても正常に動作します。
var user = "ame"
print("Hello $user さん") // Hello ame さん
改行を含んだ文字列を格納する
"""〜"""
で文字列を囲むとその中に改行を含んだ見た目通りの文字列を格納することができます。"〜"
でも\n
(改行コード)を使えば改行を含んだ文字列を作成することができます。
var str = """
こんにちは。
これは改行を含んだ
文字列です。
"""
var str = "こんにちは\nこれは改行を含んだ\n文字列です"
関数
Kotlinでの関数はfun
で定義します。
fun 関数名 () {
処理
}
定義すれば関数名()
と記述するだけで特定の処理を実行させることができます。
fun printFoo() {
print("foo")
}
printFoo() // foo
関数を実行して戻り値を受け取ることも可能です。その際は戻り値の型を明示的に指定しないとエラー(A 'return' expression required in a function with a block body ('{...}')
)になります。
fun getFoo() :String {
return "Foo"
}
print(getFoo()) // Foo
関数に引数を渡す
関数に外から値(引数)を渡すこともできます。定義するときに引数名とその型を、呼び出す時には引数に該当の型の値
渡さないとエラーになってしまいます。
fun getFoo(user:String) {
print("こんにちは" + user)
}
getFoo("ame") // こんにちはame
呼び出し時の引数名を明示的に指定してもOKです。
fun getFoo(user:String) {
print("こんにちは" + user)
}
getFoo(user = "ame") // こんにちはame
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。