在 Scala 中如何在主构造函数中定义局部变量?
我需要解决这个练习Scala for the impatient
book:
编写一个具有接受字符串的主构造函数的 Person 类
包含名字、空格和姓氏,例如 new
人(“弗雷德·史密斯”)。提供只读属性firstName和
姓。主构造函数参数应该是 var、val 或
一个简单的参数?为什么?
现在我的解决方案如下所示:
class Person(firstLast: String) {
private[this] val firstLastAsArr = firstLast.trim.split(" ")
val firstName = firstLastAsArr (0)
val lastName = firstLastAsArr (1)
}
我如何限制firstLastAsArr
主构造函数作用域的变量可见性(现在它具有类作用域)?
一种解决方案是初始化firstName
and lastName
立即,从而允许转动firstLastAsArr
进入初始化块内的本地临时值:
class Person(firstLast: String) {
val (firstName, lastName) = {
val firstLastAsArr = firstLast.trim.split(" ")
(firstLastAsArr(0), firstLastAsArr(1))
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)