【发布时间】:2015-02-13 00:41:42
【问题描述】:
有一个这样使用的函数:
xpto.withClient {
client => client.abcd
}
我想把它包装在一个对象中:
object X {
def foo[T](block: => T): T = {
xpto.withClient {
client => {
block
}
}
}
}
为了使它可以像这样使用:
object Y {
def bar : Unit {
X.foo {
client.abcd
}
}
}
这似乎并没有使客户端值在块内可用。这可能吗?使客户端变量在块定义中可用?我用 Scala 中的隐式环顾四周,但到目前为止还不好。
【问题讨论】:
-
确实允许这样做,你需要像 Haskell 的隐式参数这样的东西。请注意,这些最终会出现在 Haskell 中的函数类型中,否则类型安全会受到很大影响。
标签: scala