gpt4 book ai didi

scala - 为什么此Scala隐式参数示例不起作用?

转载 作者:行者123 更新时间:2023-12-04 05:10:37 24 4
gpt4 key购买 nike

简单的REPL测试...

def g(a:Int)(隐式b:Int)= {a + b}

为什么这些尝试的用法都不起作用?

1。

scala> A类{var b:Int = 8; var c = g(2)}
:6:错误:找不到参数b的隐式值:Int
A类{var b:Int = 8; var c = g(2)}

2。

scala>类A(var b:Int){var c = g(2)}
:6:错误:找不到参数b的隐式值:Int
A类(var b:Int){var c = g(2)}
^

谢谢

最佳答案

您需要将b定义为A中的隐式

scala> def g(a:Int)(implicit b:Int) = {a+b}
g: (a: Int)(implicit b: Int)Int

scala> class A { implicit var b:Int =8; var c = g(2) }
defined class A

scala> val a = new A
a: A = A@1f7dbd8

scala> a.c
res3: Int = 10

通常,仅考虑定义为隐式的值/方法,并在范围或所需类型的伴随对象中搜索它们(在这种情况下为Int)

关于scala - 为什么此Scala隐式参数示例不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708674/

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