gpt4 book ai didi

scala - 增强 Scala 中的预定义方法

转载 作者:行者123 更新时间:2023-12-04 05:21:40 27 4
gpt4 key购买 nike

基本问题:

为什么我只能用 Scala 编写:

println(10)

为什么我不需要写:
Console println(10)

后续问题:

如何引入一个新方法“foo”,它像“println”一样随处可见和可用?

最佳答案

你不需要写 Console前面的语句是因为Scala Predef为任何 Scala 源文件自动导入的对象包含如下定义:

def println() = Console.println()
def println(x: Any) = Console.println(x)

您无法轻松创建一个“全局”方法,该方法在您自己的任何地方都自动可见。您可以做的是将这些方法放在包对象中,例如:
package something

package object mypackage {
def foo(name: String): Unit = println("Hello " + name")
}

但是为了能够使用它,您需要导入包:
import something.mypackage._

object MyProgram {
def main(args: Array[String]): Unit = {
foo("World")
}
}

(注意:除了包对象,您也可以将它放在常规对象、类或特征中,只要您导入对象、类或特征的内容——但包对象或多或少用于此目的)。

关于scala - 增强 Scala 中的预定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764322/

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