阅读 Pharo 的文档(Pharo By Example),第一个区别在于数组的制作方式。
文字将遵循此语法
myArray := #(1 2 3)
而一个动态数组
myArray := {1+2 . 4-2 . 3 }
文字数组将直接取值,包含数字、字符串和 bool 值。而动态数组将获取完整的消息,这些消息将编译并将其返回值插入到数组中。
两者之间还有其他区别吗?如果动态数组可以完成文字数组的功能,为什么还存在文字数组?
最佳答案
动态数组如 { 1 + 2 . 4 - 2 . 3 }
基本上是一个语法糖:
Array
with: 1 + 2;
with: 4 - 2;
with: 3
这是有道理的,因为数组经常被创建。您也可以将其合并以创建字典,例如:
{
#keyOne -> 5 .
#keyTwo -> 3 .
#keyThree -> 1
} asDictionary
文字数组作为实际文字并且在编译时之前定义。
关于arrays - Pharo 3 中文字数组和动态数组的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23672415/