Kotlin

【Kotlin入門】アンダースコアの変数(キーワード)の意味を理解する

Kotlin のソースコードのプルリクストをレビューしていて、見慣れない変数に遭遇したので調べてみました。

変数名は半角のアンダースコア(アンダーバー)です。

_

一瞬、アンダースコア JS を思い出してしまいましたが、Kotlin でこんな変数があるのだと未知の領域に軽く踏み込んでみます。

パラメータ省略のキーワード

調べてみたところ、アンダースコアはパラメータを省略するためのキーワードのようです。

上記サイトの記事タイトルの通り、Kotlin1.1 から導入された機能のようですね。

ただ、パラメータを省略すると言われてもちょっとピンときませんよね・・・。

この機会に、少し使い方を覚えておきましょう。

上で紹介したサイトにもいくつかサンプルパターンが掲載されていますが、よくわからないものもあったので、自分なりにシンプルなパターンで試してみます。

戻り値で未使用変数を定義する

あまり利用しないパターンかもしれませんが、Pair の戻り値の片方が不要な場面ってあるかもしれません。

そんな時に不要な変数をアンダースコアのキーワードで定義してみます。

動物の種類と数を Pair で返す関数を呼び出し、戻り値を両方とも受け取って標準出力するパターンと、片方をアンダースコアキーワードで受け取るパターンを見てみます。

上記サンプルでアンダースコアのキーワードを参照しようとするとエラーになります。

該当箇所をコメントアウトした実行結果は以下の通り。

animal1 : kuma
num1 : 5

num2 : 5

ラムダ式の引数で未使用変数を定義する

上記のパターンよりは、こちらの方が利用頻度は高いかもしれません。

別に無理に明示的に定義する必要もないかもしれませんけどね・・・。

こちらもアンダースコアのキーワードを指定した key の方を参照するとエラーになります。

該当箇所をコメントアウトした実行結果は以下の通り。

key-value : kuma, 5
key-value : tori, 10

key-value : 5
key-value : 10

ピンポイントで使いたい場面に遭遇したら試してみようと思います。

とりあえずは、プルリクの際や他人のソースコードを見た際に戸惑わないようにしないといけないですね。