Scalaに代替の「リスト」構文はありますか? 「[」および「]」と呼ばれる 1 つの追加のクラス/タイプ/演算子* を定義することは可能ですか?
タイプを示すために「角括弧」が使用されることは知っていますが、リストを宣言するという繰り返しの作業には最適です。
';' また '?' 最後のリソースとしても良いでしょう。
ありがとう
obs .:多くの検索の後、私が見つけた唯一の代替手段は「cons」を使用することでした:
val list = 1 :: 2 :: 3 :: Nil
ただし、キーの入力はまったく減りません。
- 私はまだScalaでそれらのことを学んでいます
編集: 明確にするために: 私の場合、パフォーマンスは優先事項ではありません。はい、シフトは歓迎されません。:P 舞台裏の動機: 私は Haskell スタイルが好きですが、Java で直接使用することはできません。
EDIT 2: 両方の Rex Kerr ソリューションに基づく最終的なソリューション
オブジェクト型の実装:
package a
object Types {
type \[z] = List[z]
implicit def make_lists[A](z: A) = new ListMaker(z)
class ListMaker[A](a0: A) {
private[this] val buffer = List.newBuilder[A]
buffer += a0
def \(z: A) = {
buffer += z;
this
}
def \\ = buffer.result
}
}
オブジェクトタイプを使用:
package a
import a.Types._
object Whatever {
def listInListOut (l: \[Int]) = {
1\2\\
}
}