gpt4 book ai didi

scala - 在 Scala 中使用符号的实际例子?

转载 作者:行者123 更新时间:2023-12-03 05:39:23 24 4
gpt4 key购买 nike

Scala 有符号 - 以单引号 ' 开头的名称,是一种字符串常量。

我知道 Ruby 中的符号(它们以冒号开头)。在 Ruby 中,它们用于一些元编程任务,例如为成员变量生成 getter 和 setter(例如 attr_reader :namename 生成 getter)。

我还没有在 Scala 代码中看到很多符号的使用。 Scala 中符号的实际用途是什么?

最佳答案

符号真的适合 Scala 吗?

在 Lisp 的奇妙土地上,代码被表示为表示自身(字符串、数字等)的文字对象的嵌套列表,以及用作类、函数和变量等事物的标识符的符号。由于 Lisp 代码具有非常简单的结构,Lisp 允许程序员对其进行操作(在编译时和运行时)。显然,在这样做时,程序员将不可避免地遇到作为数据对象的符号。

所以符号在任何情况下都是(并且必须是)Lisp 中的对象,那么为什么不将它们用作哈希表键或枚举呢?这是做事的自然方式,并且它使语言保持简单,因为您不必定义特殊的枚举类型。

总而言之,符号自然地用于代码操作、枚举和键控。但 Java 人员默认并不使用身份作为哈希键之间的等价关系(传统 Lisp 是这样做的),因此他们可以只使用字符串作为键。枚举类型在 Scala 中单独定义。最后,该语言根本不支持代码即数据。

所以不,我的印象是符号不属于 Scala 语言。也就是说,我将密切关注这个问题的答复。他们可能仍然展示了我现在无法想到的 Scala 中符号的真正用法。

(附录:根据 Lisp 方言,Lisp 符号也可能是命名空间限定的,这当然是操作代码时非常有用的功能,也是字符串所没有的功能有。)

关于scala - 在 Scala 中使用符号的实际例子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324466/

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