gpt4 book ai didi

scala - 如何使用仅在运行时已知的值初始化对象 val?

转载 作者:行者123 更新时间:2023-12-03 21:15:59 25 4
gpt4 key购买 nike

假设我正在尝试编写一个简单的井字游戏。它有一个 M x N 字段。游戏只有一个字段,所以它可能应该用单例 object 表示。 .像这样:

object Field {
val height : Int = 20
val width : Int = 15
...
}

但是我不想对高度和宽度进行硬编码,所以如果它们可以在运行时通过构造函数或其他东西传递给对象,那就太好了。但是 object s 不能有构造函数。

嗯,我可以换 heightwidth成为 var s,而不是 val s 并介绍一种新方法
def reconfigure (h:Int, w:Int) = {
height = h
width = w
}

并在游戏开始时调用它。但它也不优雅。

那么,是否有一种巧妙的方法可以做到这一点 - 即拥有对象 val s 用运行前未知的值初始化?

最佳答案

为什么不使用 class并在 main 中初始化一个实例?

case class Field(width: Int, height: Int) {
//...
}

object Main {
def main(args: Array[String]): Unit = {
val field = Field(30, 25)
}
}

关于scala - 如何使用仅在运行时已知的值初始化对象 val?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8782448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com