[解決済み] Kotlinの変数名前アスタリスク演算子またはSpread演算子
2022-06-23 22:10:22
質問
Kotlinで変数名の前につけるアスタリスクの意味を知りたいです。
私はこれを見た (
*args
) の中で
Spring bootのKotlinの例
:
@SpringBootApplication
open class Application {
@Bean
open fun init(repository: CustomerRepository) = CommandLineRunner {
repository.save(Customer("Jack", "Bauer"))
repository.save(Customer("Chloe", "O'Brian"))
repository.save(Customer("Kim", "Bauer"))
repository.save(Customer("David", "Palmer"))
repository.save(Customer("Michelle", "Dessler"))
}
}
fun main(args: Array<String>) {
SpringApplication.run(Application::class.java, *args)
}
どのように解決するのですか?
この
*
演算子として知られています。
スプレッド演算子
と呼ばれています。
からは Kotlinリファレンス ...
vararg-functionを呼び出すとき、asList(1, 2, 3)のように引数を1つずつ渡すこともできますし、すでに配列を持っていてその内容を関数に渡したい場合は、スプレッド演算子(配列に*を前置する)を使用します。
を受け付ける関数に渡す前に、配列に適用することができます。
varargs
.
例として...
様々な数の引数を受け取る関数がある場合...
fun sumOfNumbers(vararg numbers: Int): Int {
return numbers.sum()
}
配列の要素を引数として渡すには、spread演算子を使う。
val numbers = intArrayOf(2, 3, 4)
val sum = sumOfNumbers(*numbers)
println(sum) // Prints '9'
注意事項
-
は
*
演算子はまた 乗算演算子 (にもなります(当たり前ですが)。 - 演算子は関数に引数を渡すときのみ使用できます。演算の結果は を格納することはできません。 というのも、この演算は値を生成しないからです(これは は純粋に 構文糖です)。
- この演算子は、ポインタを参照解除しているように見えるので、最初はC/C++プログラマーを混乱させるかもしれません。そうではありません。Kotlinは ポインタの概念がありません。 .
- 演算子は 他の引数との間で を使うことができます。これは例で示されている ここで .
-
この演算子は
apply
関数に似ています。
関連
-
[解決済み] にはどんな意味があるんだろう?
-
[解決済み] Kotlinの「?:」は何をするのか?(エルビス演算子)
-
[解決済み] なぜ"||"は "or "の記号なのですか?[クローズド]
-
[解決済み] OCamlにおける`and`キーワードの意味とは?
-
[解決済み] Kotlin 三項条件演算子
-
[解決済み] JavaScriptオブジェクトに変数を名前としてプロパティを追加しますか?
-
[解決済み】Kotlinのダブルバング(!)演算子とは?
-
[解決済み] C#の関数名の前のチルダは何を意味するのですか?
-
[解決済み] Kotlinの複数変数let
-
[解決済み] Kotlin 2次コンストラクタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] twigで文字列を連結する方法
-
[解決済み] はOCamlの構文糖でbegin.endですか?
-
[解決済み] Go golang、シンタックスエラー: unexpected ++, expecting :
-
[解決済み] PowerShellで"@"マークは何をするのですか?
-
[解決済み] 演算子:=とは何ですか?
-
[解決済み] なぜ"||"は "or "の記号なのですか?[クローズド]
-
[解決済み] OCamlにおける`and`キーワードの意味とは?
-
[解決済み] IFステートメントを使用しているときに、シェルコマンドを複数行に分割するにはどうすればよいですか?
-
[解決済み】PowerShellで"&&"や"-and "を動作させることはできますか?
-
[解決済み] 様々な言語のコードをシンタックスハイライトするためのLaTeXパッケージ