はじめに
公式の問題集「Kotlin Koans」を解きながらKotlinを学習します。
過去記事はこちら
問題
joinOptions関数が、2つの引数のみを指定して、JSON形式(例えば、[a, b, c])でリストを返すようにTODO()
を修正します。
fun joinOptions(options: Collection<String>) =
options.joinToString(TODO())
joinToString関数は、パラメータにデフォルト値を指定して宣言されています。
fun joinToString(
separator: String = ", ",
prefix: String = "",
postfix: String = "",
/* ... */
): String
問題のポイント
デフォルト引数と名前付き引数は、オーバーロードの数を最小限に抑え、関数呼び出しの可読性を向上させるのに役立ちます。
ライブラリ関数joinToStringは、パラメータにデフォルト値を指定して宣言されています。
解答例
separatorのデフォルト値はカンマ区切りなので値の指定は不要になります。
fun joinOptions(options: Collection<String>) =
options.joinToString(prefix = "[", postfix = "]")