- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我定义一个简单的 stringToInt 函数并将其存储为 val,则一切都按预期工作,例如
scala> def stringToInt1: (String => Int) = _.toInt
stringToInt1: String => Int
scala> stringToInt1("1")
res0: Int = 1
scala> implicit def stringToInt2: (String => Int) = _.toInt
stringToInt2: String => Int
scala> stringToInt2("1")
java.lang.StackOverflowError
at .stringToInt2(<console>:7)
at $anonfun$stringToInt2$1.apply(<console>:7)
at $anonfun$stringToInt2$1.apply(<console>:7)
...
scala> implicit def plusTwo: (Int => Int) = _ + 2
plusTwo: Int => Int
scala> plusTwo(2)
res2: Int = 4
scala> implicit def stringToInt3(s: String) = s.toInt
stringToInt3: (s: String)Int
scala> stringToInt3("1")
res3: Int = 1
scala> import scala.collection.immutable.StringOps
import scala.collection.immutable.StringOps
scala> implicit def stringToInt4: (String => Int) = new StringOps(_).toInt
stringToInt4: String => Int
scala> stringToInt4("1")
res4: Int = 1
最佳答案
补充其他回复。
有否 toInt
方法在 String
. Scala 必须找到一个隐式转换,该转换将产生具有 toInt
的类型。方法。
通常是 StringOps
转换提供此 toInt
.
然而Int
有 toInt
同样,所以 Scala 会从 String => Int
找到您的转换并决定它优先于 StringOps
转换,从而递归地应用它。
这就是为什么StringToInt4
有效,因为您明确告诉编译器您想要什么转换。也许你可以把它写成:implicit def stringToInt5: (StringOps => Int) = _.toInt
或检查隐式如何解决以及一个如何优先于另一个。
关于scala - 为什么这个简单的隐式 stringToInt 函数会导致堆栈溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20541189/
如果我定义一个简单的 stringToInt 函数并将其存储为 val,则一切都按预期工作,例如 scala> def stringToInt1: (String => Int) = _.toInt
我已经实现了一种将给定字符数组转换为十进制整数的方法。该方法从数组中取出每个字符,计算其十进制值并将其与 10^n 相乘,其中 n 随着每次迭代而递增。 So for example the arra
上周在一次求职面试中,我被要求在白板上做一个 StringToInt/Int.parse 函数,但表现不是很好,但我想出了某种解决方案。后来回到家后,我在 Visual Studio 中做了一个,我想
本文整理了Java中de.tudarmstadt.ukp.jwktl.parser.ru.wikokit.base.wikt.multi.ru.quote.YearsRange.stringToInt
我是一名优秀的程序员,十分优秀!