【发布时间】:2020-05-07 08:37:57
【问题描述】:
class Student(firstName: String, lastName: String, rollNum: String)
需要将 firstName 和 lastName 转换为大写。当我们分配值时,设计方面的最佳方式是什么
val st1 = Student(
firstName = firstName.toUpperCase,
lastName = lastName.toUpperCase,
rollNum = rollNum
)
或
case class UpperCaseStr(rawValue: String) {
def value: String = rawValue.toUpperCase
}
val st1 = Student(
firstName = UpperCaseStr(firstName),
lastName = UpperCaseStr(lastName),
rollNum = rollNum
)
【问题讨论】:
-
第二种方法不编译。第一种方法是正确的。
-
如果您的域对名称有一些规则,我将使用智能构造函数创建一个单独的类型,并使用该类型而不是 String。如果这是一次性的,我认为
.toUpperCase就足够了。