【发布时间】:2021-05-26 06:47:43
【问题描述】:
假设我有以下代码:
class Pet(name: String) {
def getName: String = {
name match {
case "" => generateRandomName
case _ => name
}
}
}
object Pet {
def apply(name: String) = new Pet(name)
}
创建一个空名称的Pet 将创建一个随机名称的Pet。如何保存新生成的随机名称的状态,所以调用此方法两次将返回第一次调用生成的相同名称?
val pet = Pet("")
// Let's say this prints "bob"
println(pet.getName)
// I want this to still print "bob". This would generate a new random name because the state isn't saved from the previous call.
println(pet.getName)
我想避免使用var,因为它被认为是不好的做法——你如何去做这样的事情?是创建类的新副本的最佳方式吗?这对我来说似乎不是很有效
【问题讨论】:
标签: scala functional-programming