作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
case class Person(firstName: String, lastName: String)
type Person = (String, String) //firstName, lastName
`case class UserScores(userId: Long, score: Double)`
users.zip(scores).map{(id ,score) => UserScores(id,score)}
users.zip(scores).view.map{(id ,score) => UserScores(id,score)}.force
最佳答案
当它是最合适的抽象级别时,您应该使用元组。
例如,如果您正在编写一个框架,其中所有内容都是完全通用的,并且您可以获得的最具体的东西是“函数”、“笛卡尔积”、“半群”或“封闭的幺半群”之类的东西,那么您可能将别无选择,只能使用 Tuple
.这是一个很好的例子:Semigroupal用方法:
product[A, B](fa: F[A], fb: F[B]): F[(A, B)]
Person(name: String, surname: String)
这样具体的东西,但是您会看到大量适用于泛型元组的方法
(A, B)
.
object Fred {
val name = "Fred"
val surname = "Bloggs"
}
John Doe
还需要另一个类似的对象。 , 更合适的定义是
case class Person(name: String, surname: String)
val j = Person(name = "John", surname = "Doe")
type Person = (String, String) //firstName, lastName
A
在不同的抽象级别上工作和
B
类型,如果您不小心交换了
(B, A)
,编译器会发出错误消息在哪里
(A, B)
预料之中。
关于scala - 何时使用元组而不是案例类有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49054094/
我是一名优秀的程序员,十分优秀!