【Kotlin入門】関数定義〜中置記法「infix」を使ってみる

Kotlin
スポンサーリンク

こんにちは😀

今回も関数の応用表現を追っていきます。
「infix」という文法用語をみてみます。
infix(インフィックス)とは、「文の中に置く」という意味です。
これは中置記法というもので、「ちゅうちきほう」と呼びます。
数式やプログラムを記述する方法の1つで、操作対象の中間に
記述することからこう呼ばれています。

では、infixを使ってみましょう。
作成したplus関数の文頭に記述します。
これは、Intというすでにあるデータ型に機能を付加する「拡張機能」
になります。

infix fun Int.plus(x:Int):Int{
return this+x
}

main関数はこう書きます。
上記のthisは、main関数内でいう「5」を指し、
引数は「10」になります。なので、「5 + 10」の計算式になります。 

fun main(args: Array<String>) {

println(5.plus(10))
}

また、こうも書けます。
以下は、「.」と「(….)」を省略しています。
こう書くと、言語のような(英文のような)書き方になります。
この書き方ができるのが中置記法の特徴です。

println(2 plus 20)

実行します。
上の出力結果が省略していない書き方で、
下の出力結果は省略形の書き方です。
中置記法1
さらには、前回やった1行での関数の書き方も使えます。
以下は、かけ算の式になります。

infix fun Int.multiply(y:Int):Int = this * y

main関数で呼びましょう。「10×30」という意味になります。

println(10 multiply 30)

実行すると、想定通りの結果が出力されました。
中置記法2
合わせて、String型でも作ってみましょう。
Int型の場合と書き方は同様です。

infix fun String.use(z:String):String {

return this + “今から${z}を使う”
}

main関数も呼びます。
日本語が混ざりますが、確かに言語に近い書き方になりますね。
上記のuse関数でいう「this」が「私は、」で、引数は「自転車」
になります。

println(“私は、” use “自転車”)

実行します。こちらも想定通りです。
中置記法3

無理にこの文法を多様する必要はないと思いますが、
ソースを読み解く場合やコードの理解を深めるためには知っておいて
損はないでしょう。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

コメント

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