gpt4 book ai didi

Scala 类似于 "with object do begin ... end"(快捷方式访问)

转载 作者:行者123 更新时间:2023-12-04 16:22:19 25 4
gpt4 key购买 nike

在旧的生锈的 Pascal 中,有一个方便的构造来对对象或记录执行一系列操作:

with obj do
begin
methodCall
otherMethodCall
...
end

我试图在 Scala 中触及类似的东西,但我脑子里缺少一些东西:)

是否有可能以某种方式实现这样的效果,就好像 obj 在传递的闭包的当前范围内并且表现如下:
{
import obj._
callObjMethod(x, y)
objVal.doSomething()
...
}

但是在自定义语法中,例如:
doWith (obj) {
callObjMethod(x, y)
objVal.doSomething()
}

直觉上觉得是多了 noyes但好奇心想确定。

最佳答案

你的意思是这样吗?

val file = new java.io.File(".")

// later as long as file is in scope

{
import file._
println(isDirectory)
println(getCanonicalPath())
}

您可以使用 import关键字将对象的方法带入范围。

关于Scala 类似于 "with object do begin ... end"(快捷方式访问),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15450209/

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