Skip to content

Kotlin入門:基本構文とHello World実装

はじめに

プログラミング言語の選択は、開発の生産性と品質に大きく影響します。特にサーバサイド開発やAndroidアプリケーション開発において、Kotlinは簡潔性と安全性を両立した言語として注目されています。

本記事では、Kotlinの基本構文と設計思想について実践的に解説します。現役のサーバサイドKotlin開発者の視点から、関数定義、変数宣言、型推論、文字列テンプレートといった基礎知識を、実際のコード例とともにお伝えします。

まずKotlinの概要と求人動向について説明し、次に最初のプログラム構造を確認します。その後、基本構文の詳細と練習問題を通じて、実践的な理解を深めていただけます。

Kotlinの特徴と開発背景の理解

Kotlinは、IntelliJ IDEAを開発したJetBrains社によって2011年に発表されたプログラミング言語です。Apache 2.0ライセンスのもとで無料提供されており、ソースコードはGitHub上で公開されています。誰でも自由に利用や改変が可能です。

Kotlinは強い静的型付けを持つ汎用言語であり、JVM(Java Virtual Machine)上で動作します。2017年にGoogleがAndroid開発における公式言語として採用したことで、普及が大きく加速しました。オブジェクト指向と関数型プログラミングの両方の特徴を併せ持ち、簡潔で安全性の高いコード記述を実現します。

本記事では、文法、型システム、関数構成といった基礎概念を中心に整理しています。サーバサイド開発者の視点から実務で役立つ知識を、シンプルで実践的なコード例とともにご紹介します。

Kotlin Programming Language Kotlin

Kotlinにおける求人動向と市場価値

Kotlinは現在、非常に高い需要を持つプログラミング言語です。主要な企業の多くが、Webおよびモバイルアプリケーションの開発にKotlinを採用しています。

フリーランスのKotlin開発者の平均年収は約950万円と言われています。この数値は勤務地域や経験年数によって変動しますが、Kotlinの市場価値の高さを示す指標となります。

本サイトでは、Kotlinに関する体系的な学習資料を記事として提供しています。シンプルで効果的な入門コンテンツを活用し、自分のペースで学習を進めることができます。

最初のプログラム構造と実行の仕組み

Kotlinプログラムの基本構造を理解することは、学習の第一歩となります。以下は、「Hello, world!」を出力する最もシンプルなプログラムです。


fun main() {
    println("Hello, world!")
    // Hello, world! と出力されます。
}

このプログラムには、Kotlinの基本的な要素が含まれています。

基本構文における重要な概念

Kotlinの基本構文には、以下の重要な要素があります。

関数定義のキーワード:fun は関数を定義するためのキーワードです。すべての関数はこのキーワードから始まります。

エントリーポイント:main() 関数は、プログラムの実行が開始される入り口にあたります。プログラムを実行すると、この関数から処理が始まります。

処理の記述範囲:関数の処理内容は中括弧 {} の内部に記述します。この中に、実行したい処理を順番に記述していきます。

標準出力への表示:println() および print() 関数は、引数として与えられた値を標準出力に表示します。println() は出力後に改行しますが、print() は改行しません。

関数と変数の基本的な扱い方

関数と変数は、プログラミングにおける最も基本的な構成要素です。これらを正しく理解することで、より複雑なプログラムを構築できるようになります。

関数の役割と定義方法

関数とは、特定の処理をまとめた命令の集合です。一度関数を定義しておけば、同じ処理を繰り返し記述することなく、必要なときに何度でも呼び出すことができます。

本記事では主に main() 関数を使って例を示しますが、関数の詳細な定義方法や応用については後続の記事で解説します。関数を効果的に使うことで、コードの再利用性と保守性が大きく向上します。

変数宣言における不変性の重要性

プログラムはデータを扱うために変数を使います。Kotlinでは次の2種類の変数を宣言できます。

読み取り専用変数:val は値を変更できない読み取り専用の変数(イミュータブル、不変)です。一度値を代入すると、その後変更することはできません。

変更可能な変数:var は値を変更できる変数(ミュータブル、可変)です。宣言後に何度でも値を再代入できます。

変数に値を代入する際は、代入演算子 = を使用します。変数は main() 関数の外(プログラムの冒頭)にも宣言できます。このような変数はトップレベル変数と呼ばれます。


val apple = 5      // りんごは5箱
val hotdog = 7     // ホットドッグは7個
var customers = 10 // 並んでいるお客さんは10人

// 一部の客が列から離れたから値を変更しよう
customers = 8
println(customers)
// 出力: 8

上記の例では、customersvar で宣言されているため、宣言後に値を再代入することが可能でした。

基本的には、すべての変数を val で宣言することが推奨されています。本当に値を変更する必要がある場合にのみ var を使うことで、意図しない変更を防ぐことができます。この設計思想は、バグの少ない安全なコードを書くために重要です。

型推論と文字列テンプレートの活用

Kotlinには、開発者の負担を軽減する便利な機能が備わっています。型推論と文字列テンプレートは、その代表的な例です。

型推論による記述の簡潔化

上記の変数宣言例において、変数の型を明示的に書いていないことにお気づきでしょうか。これは、Kotlinが自動的に型を判断しているためです。

この機能を型推論と呼びます。上記の例では、applehotdogcustomers はすべて Int 型(整数型)として推論されます。型を明示的に書く必要がないため、コードがより簡潔になり、可読性が向上します。

文字列テンプレートによる柔軟な出力

変数の内容を文字列の中に埋め込みたい場合、Kotlinでは文字列テンプレートを利用できます。

テンプレート式とは、変数の中身を文字列の中に直接書き込むための方法です。文字列はダブルクォーテーション(")で囲み、その中で変数を使いたいときはドル記号 $ を前につけます。


val customers = 10
println("There are $customers customers")
// 出力: There are 10 customers

println("There are ${customers + 1} customers")
// 出力: There are 11 customers

テンプレート式内で計算や関数呼び出しなどの処理を行いたい場合は、${} の中に式を記述します。この機能により、文字列の連結処理を簡潔に書くことができ、コードの可読性が向上します。

参照:[Kotlin公式ドキュメント – 文字列テンプレート](https://kotlinlang.org/docs/strings.html)

練習問題による理解の定着

理論的な知識を実践的なスキルに変えるためには、実際にコードを書くことが重要です。以下の練習問題に取り組んでみましょう。

文字列テンプレートを使った出力の実装

次のコードを完成させて、標準出力に「Mary is 20 years old」と表示されるようにしましょう。


fun main() {
    val name = "Mary"
    val age = 20
    // ここにコードを書いてください
}

出力例:


Mary is 20 years old

この問題では、文字列テンプレートを使って変数 nameage の値を埋め込む必要があります。println() 関数と $ 記号を活用してください。

終わりに

本記事では、Kotlinの最初の一歩として、基本構造と文法の考え方をご紹介しました。main 関数、変数、型推論、文字列テンプレートといった要素を通じて、Kotlinの「シンプルで安全な」設計思想を体験していただけたことと思います。

KotlinはJavaと高い互換性を持ちながらも、より簡潔で直感的に書けるモダンな言語です。特にサーバサイドやAndroid開発では、Kotlinのコードの読みやすさと安全性が大きな強みとなります。まずは小さなプログラムから始めて、徐々に機能を拡張していくことをお勧めします。

技術は日々進化していますが、本記事で紹介した基本的な概念は長期的に有効な知識です。次回は「基本型(Basic types)」について学び、変数にどのようなデータ型が存在し、型推論とどのように関係しているのかを理解することで、Kotlinの型システムをさらに深く使いこなせるようになります。

You will be redirected shortly kotlinlang.org

コメントを残す