gpt4 book ai didi

Scala 类型别名命名规则?

转载 作者:行者123 更新时间:2023-12-02 01:50:03 25 4
gpt4 key购买 nike

我尝试进行 Google 搜索,但由于涉及符号系统,我未能找到任何相关信息。

我知道这会编译 type ==>[A, B] = Map[A, B] 但这不会 type m==>[A, B] = Map[ A, B]。此外,这不会编译 type =m=>[A, B] = Map[A, B]

此外,我知道这些是等效的 def foo: Int ==> String = ???def foo: ==>[Int, String] = ???。但是我找不到任何指定这些规则的官方文件?在哪里指定我可以将 2 类型参数替换为类型别名的任一侧?如果我有 3 个类型参数怎么办?如果我有这个:type ==>[A, B, C],我怎么能做类似def foo: A ==> B ==> C 的事情?

最佳答案

Scala 标识符名称不能包含符号和字符的混合。这统一适用于方法以及类型和类型构造函数名称。

scala> type =m=>[A, B] = Map[A, B]
<console>:1: error: identifier expected but '=' found.
type =m=>[A, B] = Map[A, B]
^

scala> type ===>[A, B] = Map[A, B]
defined type alias $eq$eq$eq$greater

scala> type mmmm[A, B] = Map[A, B]
defined type alias mmmm

比较:

scala> def foo = 3
foo: Int

scala> def === = 3
$eq$eq$eq: Int

scala> def =foo= = 3
<console>:1: error: identifier expected but '=' found.
def =foo= = 3
^

唯一的异常(exception)是 foo_<symbol-here>但这不会帮助你命名一些东西=m=> .

scala> def foo_? = 3
foo_$qmark: Int

scala> def foo_* = 3
foo_$times: Int

scala> def foo_==> = 3
foo_$eq$eq$greater: Int

关于Scala 类型别名命名规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23330475/

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