如果我使用 F# 解释器,我可以定义一个简单的函数,如下所示:
> // Function to check if x is an integer multiple of y
> let multipleOf x y = (x % y = 0);;
val multipleOf : x:int -> y:int -> bool
如果我知道 F# 解释器会话中存在某个函数,但不确定其精确类型,我可以通过输入函数名称来要求解释器提供其类型:
> // I can't remember the type of the function multipleOf!
> multipleOf;;
val it : (int -> int -> bool) = <fun:it@12-1>
显然,这告诉我该函数multipleOf
属于类型int->int->bool
。我发现这个工具非常有用,可以在使用 F# 解释器时唤起我的记忆。
然而,我似乎在 Scala 的 REPL 中找不到类似的功能。当然,我可以很容易地在 Scala 中定义一个等效函数:
def multipleOf(x: Int, y: Int) = x % y == 0
但是,如果我在 Scala REPL 会话中进行了 10 分钟并且记不起函数的类型,请输入multipleOf
没有给出有关类型的信息(事实上,它给出了一个错误)。相似地,:type multipleOf
告诉我没有什么有用的。
scala> val f = (i: Int, j: Int) => i % j == 0
f: (Int, Int) => Boolean = <function2>
scala> f
res2: (Int, Int) => Boolean = <function2>
scala> def multipleOf(x: Int, y: Int) = x % y == 0
multipleOf: (x: Int, y: Int)Boolean
scala> :type multipleOf(_, _)
(Int, Int) => Boolean
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)