gpt4 book ai didi

scala - 有人可以解释我在 Scala 中的隐式转换吗?

转载 作者:行者123 更新时间:2023-12-04 02:40:15 25 4
gpt4 key购买 nike

更具体地说,BigInt适用于将 int 转换为 BigInt?

在源代码中它写道:

...
implicit def int2bigInt(i: Int): BigInt = apply(i)
...

这段代码是如何调用的?

我可以理解这个其他样本如何: "Date literals"作品。

在。
val christmas = 24 Dec 2010  

定义:
implicit def dateLiterals(date: Int) = new {
import java.util.Date
def Dec(year: Int) = new Date(year, 11, date)
}

int get 已通过消息 Decint作为参数,系统寻找可以处理请求的另一种方法,在本例中 Dec(year:Int)
一季度。我对日期文字的理解正确吗?

Q2。它如何应用于 BigInt?

谢谢

最佳答案

当提供的类型与预期类型不匹配时,Scala 编译器在标记为隐式的范围内查找任何将提供的类型作为参数并返回预期类型作为结果的方法。如果找到,它会在两者之间插入对方法的调用。
在 BigInt 的情况下,假设你有一个方法

doSomethingWithBigInt(d:BigInt)=....

你用一个整数调用它:
doSomethingWithBigInt(10)

由于类型不匹配,Scala 编译器将生成:
doSomethingWithBigInt(int2bigInt(10))

假设隐式 int2bigInt 在范围内

关于scala - 有人可以解释我在 Scala 中的隐式转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2861501/

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