【Kotlin入門】関数定義〜可変長引数をみてみる

Kotlin
スポンサーリンク

こんにちは😀

今回は、関数の応用として、可変長引数をみてみます。
可変長引数とは、与える引数の個数を変えることができ、
vararg」を使用して表します。

実際に書いてみましょう。
goTravel関数を作成し、1行目の引数に「vararg」を記載します。
これで可変長引数が使用できます。

fun goTravel(vararg areas:String):String {

var allAreas = “”

for (area in areas) {

allAreas = allAreas + area + “と”

}

allAreas = allAreas.dropLast(1)

return “今回の旅行は、${allAreas}に行きます。”
}

後は、引数をそのセットされている数の分だけfor文で回して、
変数allAreasに追加しています。
なお、11行目のdropLast構文は1番後ろからの指定の文字数
を削除します。
上記だと「1」を指定しているので一番最後の1文字「と」を
削除しています。
「3」を指定すれば、一番最後から数えて3文字を削除します。

このgoTravel関数を、main関数で呼び出しましょう。

fun main(args: Array<String>) {

println(goTravel(“大阪”,”姫路”,”滋賀”))

}

実行します。
引数の文字をセットして出力しています。
複数の要素をセットする点においては、使い方としては配列に
似ていますね。
可変長引数1

配列に似ているからと言って、例えば、array(配列)を可変長引数に
渡すと以下のようにエラーになってしまいます。
可変長引数3

ただし、こうすればOKです。
arrayOfの前に「*」(spread演算子)を追加します。
spread演算子とは、配列やオブジェクトの要素を展開する演算子です。
つまりここでは、arrayOfの要素を1つ1つ取り出して引数にセット
していることになります。
こうなると、もともと配列を引数としてセットする意味もなくなり
ますね。

println(goTravel(*arrayOf(“福岡”,”長崎”,”熊本”)))

では、実行します。
想定通り出力できました。
可変長引数3

使える表現の幅を広げる意味では、今回の可変長引数も知っておくと
いろいろな状況での処理に対応できるようになります。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

コメント

タイトルとURLをコピーしました