1
6
一般来说 case classes 创造 discriminated (tagged) unions 在case类教程中,您可以看到Var,Fun应用程序都可以存储在能够保存一个术语的东西中。那么 pattern matching 可用于提取已存储的内容并根据 (变量、乐趣、应用程序等)匹配。整个过程类似于使用额外的“type”标志,if/else构造通常只与C联合使用,同样,类型安全(而且在大多数情况下更方便:-)
使用Scala的实例/说明: What is an algebraic data type? 它还很好地展示了它是如何关联的/是如何用“较少的”语言处理的。 |
2
3
我想你最好的选择是
不 让你做的是“读”一种类型,就好像它是另一种。它使用的引用确实比单独使用的类型的大小多,但它不会将两种类型的大小相加。它允许您知道存储的是哪种类型。 |
3
1
要在Java中(因此在Scala中)执行等效操作,您应该查看NIO库: http://en.wikipedia.org/wiki/New_I/O 相反,如果您对这个API更满意,那么您可以使用旧的Reader/Writer/Stream方法(http://tutorials.jenkov.com/java-io/index.html),并且您可能会在那里找到更多的在线教程。 |
4
1
如果编写一个类型参数化类联合,使用a=>B和B=>a中的隐式转换器
As和Bs存储为Cs,并且有一个方法,a和B分别从C中获取值。 为了使用它,我们采用了一些演示方法:
然后我们创建一个真正的联合(String/Int/List):
|
davidzxc574 · 将字符串缩放为字符 2 年前 |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
Jelly · Scala:用于理解递归未来 2 年前 |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 2 年前 |
B. Bal · 在Scala中重用类成员 2 年前 |