「勉強会に行ってみた!」 第39回  「たろうさんと学ぼうKotlin入門」
event

「勉強会に行ってみた!」
第39回 「たろうさんと学ぼうKotlin入門」

2016.10.11

今回参加したのは、女性・女性同伴男性限定のちょっと珍しい勉強会、「たろうさんと学ぼうKotlin入門」です。イベントを運営するのは、女性限定のJavaユーザコミュニティ、「Java女子部」。男性の多いIT業界で、女性エンジニアの輪を広げるため、2014年に誕生しました。
IT系のセミナーは男性の参加者がほとんどですが、このようなセミナーだと女性一人でも参加しやすいですよね。そんなJava女子部のセミナーの様子を、さっそくレポートしていきます!

河村真里

本日の講師は、エムスリー株式会社のプログラマーであり、Kotlinエバンジェリストである、長澤太郎氏(通称たろうさん)。Kotlinに関する講演や執筆活動を精力的に行っています。今回は、Kotlin初心者のためにKotlinの特徴的な機能や、基本文法などを教えてくださいました。

会場は新宿の小田急第一生命ビル9階、株式会社オープンストリーム本社の会議室です。定員20名ほどの少人数勉強会のため、とてもアットホームな雰囲気で、参加者に課題を出して実際に手を動かしながら進める、ハンズオン形式です。作業時は講師のたろうさんとチューターのやんくさんが会場内を周り、丁寧にサポートをしていました。

■Kotlinって?

Kotlinとは、JetBrains社が開発した、静的型付けオブジェクト指向のプログラミング言語です。またJava仮想マシン上で動作する、JVM言語でもあります。Javaよりも簡潔で安全性の高いコードであり、Javaエンジニアなら比較的、簡単に始められる点が魅力です。JetBrains公式によるAndroidのサポートもあるため、Android開発者にもおすすめです。

■環境環境の準備とHello World

1.「src」を選択してコンテキストメニューを開く
2.New->Kotlin File/Class
3.Nameに「main」と入力し「OK」クリック
4.下記コードを入力する
5.Run->Run…->sample.MainKtでコンパイル&実行
package sample
fun main (args: Array<String>) {
println (“Hello World!”)
}

今回の勉強会では、IntelliJ IDEAを使って作業しました。IntelliJ IDEA は、Kotlin の開発元であるJetBrains社のKotlin開発環境です。IntelliJ IDEAにはKotlin Pluginプラグインがプリインストールされているため、この開発環境を使えばすぐにKotlinを始めることができます。参加者には事前にIntelliJ IDEAをダウンロードしてもらい、勉強会ではKotlin Pluginのアップデート、プロジェクトの新規作成、Hello Worldの作成から行いました。

■Hello Worldに見るKotlinの特徴

package sample
fun main (args: Array<String>) {
println (“Hello World!”)
}

作成したHello Worldから、JavaとKotlinの違いを多数見つけることができます。
Kotlinの主な特徴は以下の通り。
・パッケージがファイルシステムと無関係
・パッケージ直下に関数を置ける
・変数の型は後ろに配置する
・文末のセミコロンは不要
またKotlinでは配列をクラスで表現するため、Javaのように特別な文法を使用する必要がありません。

■基本的な文法

ifは式(値を返すよ)
val score = 65
val message = if (score >= 60) {
“合格だよ~ん”
} else {
“残念、失格”
}
println (message) //=> 合格だよ~ん

続いてKotlinの基本的な文法ですが、整数リテラル、文字列リテラル、演算子、メソッドの呼び出し、ループなどはJavaとよく似ています。ただし、if-elseは値を返す式である点が特徴です。

また、Javaのswitch文と似た働きを持つ、whenという制御文もあります。

val word = “one”
val num = when (word) {
“zero” -> 0
“one” -> 1
“two” -> 2
else -> -1
}
println (num) //=> 1

■関数の使い方

基本の関数

fun add (a: Int, b: Int): Int {
return a + b
}
fun main (args: Array<String>) {
val sum = add (3, 7)
println (sum) //=> 10
}

次は、Kotlinでの関数の使い方です。funキーワードを頭に付け、returnで値を返します。

単一式関数

fun add (a: Int, b: Int): Int = a+ b
※「=」はreturn的な意味。=の右側は、ひとつの式のみ置ける

Kotlinらしくより簡潔に記述する方法が、単一式関数です。{ }で括られたブロックがなく、returnの代わりに「=」を使用しています。名前付き引数やデフォルト引数を使うとより便利です。

関数オブジェクト

fun add (a: Int, b: Int): Int = a+ b
fun main (args: Array<String>) {
 val func: (Int, Int) ->Int = ::add
 val sum = func (5, 7)
 println (sum) //=>12
}

Kotlinでは、関数をオブジェクトとして扱うことができます。「:: 関数名」という記述で、関数を変数に代入します。これは関数を引数や戻り値として扱う「高階関数」というもので、関数を抽象化することによって部品化の粒度が小さくなり、再利用性を高めることができます。

ラムダ式

val src = listOf (1, 2, 3)
val dst = map (src, {n: Int -> n * n})
println (dst) //=> [1, 4, 9]

また、関数を宣言せずにそのまま式として渡せるのがラムダ式。毎回、関数を定義する必要がないので、すっきりとしたコードになります。

■null安全

s.toUpperCase();
↑当然ぬるぽります。

最後のテーマは、Kotlinにおけるnull安全についてです。Javaにはnullポインタのデリファレンス問題がありますが、Kotlinにはnull安全を実現する仕組みが組み込まれています。

null安全

val s1: String = null //NG
val s2: String? = null //OK
s2. toUpperCase() //NG
if (s2 != null)
 s2. toUpperCase() //OK
s2?.toUpperCase() //OK ※安全呼び出し:s2がnullなら、何もせず直ちにnullを返す

Kotlinでは、通常の型の変数にnullを代入できません。nullを代入するためには、型名の後に「?」を付ける必要があります。
また、nullが入る可能性のある変数には、直接アクセスすることもできません。「?」付きの変数に対して通常通りメソッドを呼び出そうとすると、エラーが発生します。そのため「?」付きの変数に対しては、Ifでチェックをするか、変数の後ろに「?」を付ける「安全呼び出し」を行う必要があります。nullの可能性があるものとそうでないものを明確に区別するのも、Kotlinの特徴です。

Kotlinの特徴や基本文法、関数の使い方などを、実際に手を動かしながら学ぶことのできるセミナーでした。分かりやすくすっきりとしたコード、そしてJavaにはないnull安全などが印象的です。また勉強会の後は、女性エンジニア同士で交流できる懇親会も開催。職場に女性エンジニアがいない場合も多いと思いますので、このような交流の場があると非常に嬉しいですよね。Java女子部では毎月さまざまなセミナーを開催していますので、女性Javaユーザの方はぜひ一度参加してみてはいかがでしょうか?

原稿:河村真里
SEとして勤務後、ライターに転身。何でも手を出したくなる雑食系。
IT関連情報のほか、旅行、グルメ、インテリアなど幅広いジャンルを執筆しています。

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW