gpt4 book ai didi

smalltalk - Smalltalk 中的数组和文字数组有什么区别?

转载 作者:行者123 更新时间:2023-12-03 08:21:27 27 4
gpt4 key购买 nike

除了尺寸。

例如:

|arr|. arr := Array new: 10


#(element1,element2, ...)

最佳答案

在这两种形式中,创建的对象将具有相同的类型和相同的元素。主要区别在于使用 Array with: 时每次执行代码时都会得到一个新实例,带有 #( )您会在接受/编译方法时获得创建的实例,因此每次执行代码时,数组的实例都是相同的。

考虑以下代码:

doSomething
array := #(6 7 8).
Transcript show: array.
array at: 1 put: 3.

第一次执行 doSomething 一切都会正常。第二次你会得到 3, 7, 8 打印,因为数组和修改的一样
上次调用该方法时。

因此,在使用文字时应该小心,并且主要将它们留给它们不会发生变异的情况。

关于smalltalk - Smalltalk 中的数组和文字数组有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42160650/

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