gpt4 book ai didi

scala - 从 Scala 控制台获取函数类型

转载 作者:行者123 更新时间:2023-12-05 00:33:04 27 4
gpt4 key购买 nike

开始学习Scala,想快点看看console中的方法签名。
例如,在 Haskell 中我会这样做:

Prelude> :t map
map :: (a -> b) -> [a] -> [b]

这清楚地显示了 map 函数的签名,即它需要:
  • 接受 a 并返回 b 的函数
  • 一个列表

  • 并返回
  • b 的列表

  • 这导致得出的结论是
    map 函数通过将函数应用于列表的每个元素,将 a 的列表转换为 b 的列表。

    有没有办法在 Scala 中以类似的方式获取方法类型?

    更新:

    尝试 Federico Dal Maso 的答案,并得到这个
    scala> :type Array.fill
    <console>:8: error: ambiguous reference to overloaded definition,
    both method fill in object Array of type [T](n1: Int, n2: Int, n3: Int, n4: Int, n5: Int)(elem: => T)(implicit evidence$13: scala.reflect.ClassManifest[T])Array[Array[Array[Array[Array[T]]]]]
    and method fill in object Array of type [T](n1: Int, n2: Int, n3: Int, n4: Int)(elem: => T)(implicit evidence$12: scala.reflect.ClassManifest[T])Array[Array[Array[Array[T]]]]
    match expected type ?
    Array.fill

    显然 fill 方法被重载,并且 :type 无法决定显示哪个重载。那么有没有办法显示所有方法重载的类型呢?

    最佳答案

    scala> :type <expr>  

    显示表达式的类型而不计算它

    关于scala - 从 Scala 控制台获取函数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616820/

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