2010-07-25 20 views
2

首先,在讨论列表中的内部索引时,使用术语指针是否正确?指向同一个Rebol列表的2个变量如何具有不同的指针?

考虑以下Rebol的代码:

a: [1 2 3 4 5 6 7 8 9] 
a: at a 4 
b: a 

一个b都指向同一列表和两个返回[4 5 6 7 8 9]。这我明白。但是,我怎么看不到内部的索引可以在一个移动,但不能在b

a: head a 
length? a  ; Returns 9 
length? b  ; Returns 6 

如何内部指标分开的一个b

最后,是它正确在Rebol的说一个b是到列表[1 2 3 4 5 6 7 8 9] 引用,使用的参考的定义在Java或C#?

回答

1

在更多REBOLish术语中,a是一个变量,指的是系列。该变量,a,固有地具有当前位置

b也是一个引用一系列的变量,因此它本身也有一个当前位置。

碰巧,既一个b参考同系列,但每个都有一个不同的当前位置当前位置是系列变量的一个属性。有时候这很有用。

REBOL核心手册系列一整章.....检查出多系列变量特别是第10条:

http://www.rebol.com/docs/core23/rebolcore-6.html#section-10 
+0

感谢您的链接。我实际上并不知道在线Rebol文档,并从Auverlot/Wood书籍中学习。我不知道我错过了在线文档! – user400843 2010-07-25 19:55:52

2

苏南达的答案是接近,但不是精确。除了他提到的手册之外,还有Rebol编程的wikibook,其中包含系列http://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/Series的一部分,以及包含各个作者的其他文档文章的REBOL wiki(您可能想要查看rebol.net和rebol.org网站)。

我的答案:

“首先,它是正确的谈论在列表内索引时使用术语指针?” - 至少有两个原因是不正确的。第一个是你使用的数据不是一个列表,而是一个块(注意在REBOL中有一个列表数据类型)。第二个是内部索引是一个整数值,而不是计算机内存地址。

“a和b的内部指数是如何分开的?” - 在赋值之后,变量a不再与变量b指向同一个块,而是指具有相同头的块,但具有不同的索引。该指数是区块价值的组成部分。这个属性与上面提到的Sunanda提出的变量没有太大共同之处。事实是,每个REBOL块都有一个索引,尽管REBOL块最常用的索引值为1.

相关问题