scala - Scala 中的一切都是对象吗?
问题描述
字面量是 Scala 中的对象,因此如果将其存储到变量中,例如 val x: Int = 5; 这也会使它成为一个对象吗?出于某种原因,一切似乎都是 Scala 中的对象。
解决方案
字面量是 Scala 中的一个对象,
出色地。“文字”主要是源代码的属性。因此,“成为一个对象”的想法并不真正适用。
正确的是,每个文字都计算为一个对象。
因此,源文件中的文字1
并不是真正的对象。它只是源代码的一部分。但它评估为一个对象,即表示整数1scala.Int
的数学思想的类的实例。
因此,如果您将其存储到变量中,例如 val x: Int = 5; 这也会使它成为一个对象吗?
你说的“这个”是什么意思?
x
不是一个对象,它是一个变量。在 Scala 中,与几乎所有其他语言一样,变量本身不是对象,而是对象的名称。(从技术上讲,变量引用了一个对象。)
Int
也不是一个对象,它是一个类型。类型不是对象。然而,一个类型和一个术语可能具有相同的名称,其工作原理正是因为类型不是对象,因此永远不会混淆您是在谈论类型还是术语.
现在,5
在这个表达式中是一个对象,或者更准确地说,正如我们在上面看到的,它是一个整数文字,其计算结果为一个对象。
推荐阅读
- tensorflow - 如果输入被tf.data.TFRecordDataset随机打乱,Tensorflow如何获得输入和输出之间的映射关系
- spring - Spring中特定咖啡因缓存的配置
- android - 使用 getter、setter 和适配器从 firebase 中的特定节点/子节点检索数据,详情请参阅
- javascript - Ngrx 存储已更新但未显示
- node.js - GhostScript - 在将 Microsoft Print 转换为 PDF 文件时,ImageMagick 将 pdf 转换为图像到奇数字母
- javascript - 检测浏览器和版本 - 没有 Modernizr
- mysql - 从右表结果中获取多维数组
- android - Kotlinx Parcelize 类扩展
- inno-setup - 可执行文件不会执行
- elasticsearch - Apache Nifi - 联合搜索