gpt4 book ai didi

scala - 如何从特征访问参数?

转载 作者:行者123 更新时间:2023-12-01 07:43:52 24 4
gpt4 key购买 nike

以下代码:

trait TestMainArgs extends App {
println(s"args are: $args") // I need to have a generic main in trait which refers to args...
}

object MyRealMainObj extends TestMainArgs {
// I do not want to call the generic main from objects this would mean I would need to call them from every object which extendfs TestMainArgs
}

打印:

args are: null

虽然以下内容:

trait TestMainArgs extends App {
}

object MyRealMainObj extends TestMainArgs {
println(s"args are: $args")
}

打印:

args are: [Ljava.lang.String;@f82f98

那么我怎样才能从特征访问参数呢?

我只想将 "main" 的逻辑放在 super trait 中,我不希望代码重复,比如从扩展应用程序的每个对象调用super main,有什么办法可以实现吗?

最佳答案

另一个同样被弃用的选项是覆盖 main:

trait TestMainArgs extends App {
override def main(args: Array[String]) {
println(s"args are: ${args(0)} from test")
super.main(args)
}
}

问题在于 traits 的编译方式,构造函数在主对象之前触发,也就是设置 args 的地方。似乎没有不推荐使用的方法来做到这一点......

关于scala - 如何从特征访问参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262743/

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