gpt4 book ai didi

scala - `this` 输入 Scala

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

看着这个问题,Fill immutable map with for loop upon creation ,我很好奇是什么this表示在 Map(1 -> this) .

scala> Map(1 -> this)
res6: scala.collection.immutable.Map[Int,type] = Map(1 -> @53e28097)

scala> res6(1)
res7: type = @53e28097

没看过 type之前作为一种类型。

它是什么?

最佳答案

在 REPL 中似乎有点奇怪,但如果你真的编译或解释了一个脚本,this确实似乎指向封闭对象的当前实例。

import scala.reflect.runtime.{ universe => ru }

object Main {
def getType[T : ru.TypeTag](instance: T) = ru.typeOf[T]

def sayHello = println("hello!")

def main(args: Array[String]): Unit = {
println(this.getType(123)) // Prints "Int"
this.sayHello // Prints "hello!" to the console

getType(this).decls foreach println _
// Prints the following outputs to the console:
// constructor Main
// method getType
// method sayHello
// method main
}
}

至于为什么它没有在 REPL 中表现出这种行为,我不确定。

关于scala - `this` 输入 Scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578677/

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