0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kotlin Koans やってみた 1

Last updated at Posted at 2025-01-02

Introduction

Named arguments

問題

joinOptions() 関数が、2つの引数のみを指定して、リストを JSON 形式(例えば、[a, b, c])で返すようにします。

デフォルト引数と名前付き引数は、オーバーロードの数を最小限に抑え、関数呼び出しの可読性を向上させるのに役立ちます。
ライブラリ関数 joinToString は、パラメータにデフォルト値が設定されています:

fun joinToString(
    separator: String = ", ",
    prefix: String = "",
    postfix: String = "",
    /* ... */
): String

この関数は、文字列のコレクションに対して呼び出すことができます。

fun joinOptions(options: Collection<String>) =
        options.joinToString(TODO())

解答

fun joinOptions(options: Collection<String>) =
        options.joinToString(prefix = "[", postfix = "]")

解説

.joinToString() は、すべての要素を指定された区切り文字で結合し、指定された接頭辞や接尾辞があればそれを使用して文字列を作成してくれるもの。
.joinToString() は引数に、separatorprefixpostfixlimittruncatedtransform を渡すことができる。

separator(区切り文字):
要素の間に挿入する文字列を指定する
デフォルトは , (カンマとスペース)

prefix(接頭辞):
結果の文字列の最初に付ける文字列を指定する
デフォルトは "" (空文字)

postfix(接尾辞):
結果の文字列の最後に付ける文字列を指定する
デフォルトは "" (空文字)

limit(制限):
結果に含める要素の数を制限する
limit に指定した数だけ要素が出力され、それを超える部分は省略される
デフォルトは -1 で、これは制限なしを意味する

truncated(省略文字列):
limit を指定して要素数が制限される場合に、省略された部分を表す文字列を指定する
デフォルトは ...

transform(変換関数):
各要素に対して適用する変換関数を指定する
transform は各要素を CharSequence? に変換する関数で、デフォルトは null(変換なし)
この引数を使うことで、要素を文字列に変換したり、フォーマットを変更することができる

おわりに

Kotlin にも JavaScript みたいな組み込み関数が用意されているんだ・・・。
でも JavaScript で用意されている .join() より kotlin の方が高機能な気がする。


← 前回の記事 | 次回の記事 →

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?