なぜScalaのタプルの構文は変わっているのか?
2023-11-08 02:36:24
質問
数学とコンピュータサイエンスでは、タプルは要素の順序付きリストです。集合論では、(順序付き)n-タプルはn個の要素のシーケンス(または順序付きリスト)であり、nは正の整数である。
したがって、例えばPythonではタプルの2番目の項目は次のようにアクセスします。
t[1]
.
Scalaでは,奇妙な名前を使ってのみアクセスが可能です.
t._2
.
そこで質問ですが、タプルのデータは定義上ではSequenceやListとしてアクセスできるのに、なぜできないのでしょうか?何らかのアイディアがあるのか、それともまだインスパイアされていないだけなのか?
どのように解決するのですか?
Scalaはタプルのアリティを知っているので、以下のようなアクセッサを提供することができます。
_1
,
_2
などを選択すると、コンパイル時にエラーが発生します。
_3
を選択するとコンパイル時エラーが発生します。さらに,これらのフィールドの型は,まさに
Tuple
(のパラメータとして使われる型と同じです(例えば
_3
の上に
Tuple3[Int, Double, Float]
が返されます。
Float
).
n番目の要素にアクセスしたい場合は、次のように書きます。
tuple.productElement(n)
と書くことができますが、このときの戻り値は
Any
にしかならないので、型情報を失うことになります。
関連
-
[解決済み] リストとタプルの違いは何ですか?
-
[解決済み] Pythonの「名前付きタプル」とは何ですか?
-
[解決済み] リスト/タプルを指定されたインデックスにある要素でソートするには?
-
[解決済み] タプルを引数に展開する
-
[解決済み] Scalaのcase classとclassの違いは何ですか?
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】Scalaのyieldとは何ですか?
-
[解決済み] HListはタプルの複雑な書き方に過ぎないのか?
-
[解決済み] ScalaにおけるNull/Nothing/Unitの使用法
-
[解決済み] scalaで空リストを宣言し、文字列を追加するには?
最新
-
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 実装 サイバーパンク風ボタン