【Kotlin】基本構文まとめ!Web上で動作する実行環境Playgroundの使い方

【Kotlin】基本構文まとめ!Web上で動作する実行環境Playgroundの使い方

この記事からわかること

  • Kotlin基本構文
  • 変数使い方
  • 定義済みのデータ型
  • Web上でKotlinの動作確認

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

Kotlinを学び出した私ですが、他のプログラミング言語と構文や変数の使い方が混じらないように整理しながらまとめていきたいと思います。

公式リファレンス:Kotlin docs

Web上でKotlinの動作確認

KotlinはWeb上で動作確認ができるPlaygroundという実行環境が提供されています。誰でも無料でアクセスできるのでKotlinの動作を少し確認したい時や処理の流れをつかみたい時などに利用可能です。

Kotlin Web実行環境

【Kotlin】基本構文まとめ!Web上で動作する実行環境Playgroundの使い方

コードは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

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index