gpt4 book ai didi

scala - 如何在 Scala 中使用具有多个输入的隐式?

转载 作者:行者123 更新时间:2023-12-04 01:40:48 24 4
gpt4 key购买 nike

例如,如何编写隐式应用以下内容的表达式:

implicit def intsToString(x: Int, y: Int) = "test"

val s: String = ... //?

谢谢

最佳答案

一个参数的隐式函数用于自动将值转换为预期类型。这些被称为隐式 View 。有两个论点,它不起作用或没有意义。

您可以将隐式 View 应用于 TupleN :

implicit def intsToString( xy: (Int, Int)) = "test"
val s: String = (1, 2)

您还可以将任何函数的最终参数列表标记为隐式。
def intsToString(implicit x: Int, y: Int) = "test"
implicit val i = 0
val s: String = intsToString

或者,结合 implicit 的这两种用法:
implicit def intsToString(implicit x: Int, y: Int) = "test"
implicit val i = 0
val s: String = implicitly[String]

然而,在这种情况下它并不是很有用。

更新

详细说明马丁的评论,这是可能的。
implicit def foo(a: Int, b: Int) = 0
// ETA expansion results in:
// implicit val fooFunction: (Int, Int) => Int = (a, b) => foo(a, b)

implicitly[(Int, Int) => Int]

关于scala - 如何在 Scala 中使用具有多个输入的隐式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2416733/

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