2010-07-25 2 views
2

Прежде всего, правильно ли использовать термин указатель, говоря о внутреннем индексе в списке?Как две переменные, указывающие на один и тот же список, имеют разные указатели?

Рассмотрим следующий код: Rebol

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

и б как точка в этом же списке и как возвращение [4 5 6 7 8 9]. Это я понимаю. Тем не менее, я не вижу, как внутренний индекс может быть перемещен в , но не в б:

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

Как внутренние индексы хранятся отдельно для и б?

И наконец, это правильно в Rebol, чтобы сказать, что и б являются ссылки к списку [1 2 3 4 5 6 7 8 9], используя определение ссылки на Java или C#?

ответ

1

Более REBOLish терминологии, является переменной, которая относится к серии . Эта переменная, a, по сути имеет текущая позиция.

b также является переменной, которая ссылается на серию и поэтому также имеет по существу текущее положение.

Как это происходит, как и б задание с той же серии, но каждый из них имеет другую позицию текущего. Текущее положение является атрибутом переменной серии. Это может быть полезно время от времени.

REBOL Ядро Руководство имеет целую главу о серии ..... проверить особенно раздел 10 на нескольких переменных серии:

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

Спасибо за ссылку. Я действительно не знал о онлайн-документации Rebol и изучал ее из книги Auverlot/Wood. Я не знаю, как я пропустил онлайн-документы! – user400843

2

ответ Сунанда близка, но не точно , В дополнение к руководству, которое он упоминает, существует также программа Rebol progamming wikibook, содержащая раздел в серии http://en.wikibooks.org/wiki/REBOL_Programming/Language_Features/Series, а также вики REBOL, содержащие другие статьи документации различных авторов (вы можете проверить rebol.net и rebol.org места).

Мои ответы:

«Прежде всего, это правильно использовать термин указатель, когда речь идет о внутреннем индексе в списке?» - это неверно, по крайней мере, по двум причинам. Первый заключается в том, что используемые вами данные не являются списком, а блоком (обратите внимание, что в REBOL есть тип данных списка). Второй заключается в том, что внутренний индекс представляет собой целочисленное значение, а не адрес памяти компьютера.

«Как внутренние индексы сохраняются отдельно для a и b?» - после назначения переменная a больше не относится к тому же блоку, что и переменная b, она относится к блоку с той же головой, но с другим индексом. Индекс является неотъемлемой частью значения блока. Это свойство не имеет много общего с переменными, как предложил Sunanda выше. Дело в том, что каждый блок REBOL имеет индекс, хотя наиболее частое значение индекса блоков REBOL равно 1.

 Смежные вопросы

  • Нет связанных вопросов^_^