首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >法老3中文字数组和动态数组的区别

法老3中文字数组和动态数组的区别
EN

Stack Overflow用户
提问于 2014-05-15 08:00:12
回答 2查看 1.8K关注 0票数 8

阅读法老(例如法老)的文档,第一个不同之处在于数组的制作方式。

文字将遵循以下语法

代码语言:javascript
运行
复制
myArray := #(1 2 3)

而动态数组则具有

代码语言:javascript
运行
复制
myArray := {1+2 . 4-2 . 3 }

文字数组将直接接受值,其中包含数字、字符串和布尔值。动态数组将接受完整的消息,这些消息将编译并将其返回值插入到数组中。

这两者还有什么区别吗?如果动态数组可以执行文字数组所做的工作,为什么会存在文字数组?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-15 09:29:59

{ 1 + 2 . 4 - 2 . 3 }这样的动态数组基本上是一种语法糖,用于:

代码语言:javascript
运行
复制
Array
  with: 1 + 2;
  with: 4 - 2;
  with: 3

这是有意义的,因为数组是经常创建的。此外,您还可以结合这一点来创建一个字典,例如:

代码语言:javascript
运行
复制
{
  #keyOne   -> 5 .
  #keyTwo   -> 3 .
  #keyThree -> 1
} asDictionary

文字数组实际上是文字数组,是在编译前定义的。

票数 9
EN

Stack Overflow用户

发布于 2014-05-15 08:27:19

文字数组是标准Smalltalk语法,动态数组是Squeak (因此也是Pharo)扩展。我相信在其他Smalltalk中也存在类似的语法,但它并不是通用的。

所以文字数组存在的原因是因为它们总是--它们是Smalltalk 80的一部分。除了语法之外,当对它们进行计算时,我认为没有任何其他的区别--我相信它们都会导致相同类型的对象,只是它们的初始化方式不同。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23672415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档