我发现了一个有趣的语法东西.它被称为Infix type.
例:
class M[T, U]
new (Int M String)
Run Code Online (Sandbox Code Playgroud)
现在我正在从一些流行的框架或库中寻找这种类型的例子.我在哪里可以找到它们?有什么建议?
Odo*_*ois 11
有一堆他们
Set ~> Option
Run Code Online (Sandbox Code Playgroud)
很像
Set[A] => Option[A] forAny {type A}
Run Code Online (Sandbox Code Playgroud)
Int :: String :: Double :: HNil
Run Code Online (Sandbox Code Playgroud)
就像一个超灵活的版本
(Int, (String, (Double, ())))
Run Code Online (Sandbox Code Playgroud)
Int :+: String :+: Double :+: CNil
Run Code Online (Sandbox Code Playgroud)
就像超灵活的版本
Either[Int, Either[String, Either[Double, Nothing]]]
Run Code Online (Sandbox Code Playgroud)
Int @@ NonNegative
Run Code Online (Sandbox Code Playgroud)
零成本运行时模拟Int与标记类型中记住的一些信息
正如Archeg所提到的更多
String \/ Long
Run Code Online (Sandbox Code Playgroud)
是scala的更酷版本Either[String,Long],请在此处阅读更多内容
Boolean \&/ Long
Run Code Online (Sandbox Code Playgroud)
方便实施
Either[(Boolean, Long), Either[Boolean, Long]]
Run Code Online (Sandbox Code Playgroud)
String ==>> Double
Run Code Online (Sandbox Code Playgroud)
是haskellest版本的
collection.immutable.TreeMap[String, Double]
Run Code Online (Sandbox Code Playgroud)
String :+: Float
Run Code Online (Sandbox Code Playgroud)
是交替的事物列表,其中类似的事物被聚合(添加,连接,选择最大等)而不是排序
从scala语言,广义类型约束
=:= => A=:=String => A must be String
<:< => A<:<String => A must be subtype of String
Run Code Online (Sandbox Code Playgroud)