Tor*_*n G 5 java oop object kotlin
我在好几个地方读过这篇文章。但是不是很懂意思。您可以阅读有关 kotlinlang 的简短文档:
“在 Kotlin 中,一切都是对象,因为我们可以在任何变量上调用成员函数和属性。一些类型可以有特殊的内部表示——例如,数字、字符和布尔值可以在运行时表示为原始值——但对用户来说,它们看起来像普通的类。”
什么是特殊的内部表示?是什么意思,可以在运行时表示为原始值?
是否只能调用像 toInt() 这样的转换函数?和扩展功能?
在其他地方,我已经阅读了以下声明:
“对于来自 java 的原始数据类型,kotlin 有专门的数组类型,如 ByteArray”。这是否意味着我只能在 Kotlin 中使用 intArrayOf(1, 2, 3) 或 IntArray(5) 等函数创建数组?
我从 Head First Kotlin 一书中发现的另一个令人困惑的陈述:
“当您使用以下代码声明变量时:
var x = 5
Run Code Online (Sandbox Code Playgroud)
您分配给变量的值用于创建新对象”。
“当一个对象被分配给一个变量时,对象本身不会进入变量。对对象的引用改为进入变量:”
但是下面的代码片段与我使用 Java 得到的相同。
fun main() {
var x = 5
var y = x
x = 15
println("Hello, world!!! $y")
}
Run Code Online (Sandbox Code Playgroud)
输出是 5。但我认为它应该是 15,因为它是一个对象和对它的引用。也许我理解 Kotlin 有点愚蠢。这就是我对 Java(或 Kotlin)等编程语言中变量和引用以及内存管理的理解。
输出是5。但我认为应该是15
我们可以了解一下这个示例中发生的情况。
var x = 5
Run Code Online (Sandbox Code Playgroud)
创建一个Int保存值的对象 5. 创建一个变量x,并x指向这个新Int对象。
var y = x
Run Code Online (Sandbox Code Playgroud)
创建一个变量y,并指向y当前x指向的任何内容(Int对象)。
(请注意, 和 并不是同一个指针的两个名称。相反,和是完全不同的,但两者碰巧都指向同一事物。)xyxy
x = 15
Run Code Online (Sandbox Code Playgroud)
创建一个Int保存值 5 的对象。使x变量指向这个新Int对象。
(这是流程中的关键点。当我们分配 时x = 15,我们正在改变 wherex点,但我们根本没有影响y。y仍然指向它以前使用的相同的东西(Int持有 5))。
println("Hello, world!!! $y")
Run Code Online (Sandbox Code Playgroud)
向用户显示一些东西。要确定用什么来替换$y,请跟随指针并查看它指向的内容。y只被赋值一次,所以它仍然指向它所指向的第一个东西(持有Int5)。
| 归档时间: |
|
| 查看次数: |
605 次 |
| 最近记录: |