Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объясните суть массива 
:(
    Опции темы
almsc
Дата 30.1.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



Есть программка
Цитата

#!C:\Perl\perl.exe

@array = qw ( zero one two three four five six seven eight nine );


@array[ 1, 3, 5, 7, 9 ] = qw(1 3 5 7 9 );
print "@array\n";



вот её результат 
Цитата

zero 1 two 3 four 5 six 7 eight 9


Каким образом выводится именно такой результат? Т.е. почему после zero идет цифра 1, потом two и снова цифра 3 smile 
PM MAIL   Вверх
amg
Дата 30.1.2007, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Казалось бы очень логичный результат, учитывая, что индексы массивов в perl нумеруются начиная с 0.
Т.е. 2-му, 4-му, ..., 10-му элементам массива присваиваются новые значения: 1, 3, ..., 9 соответственно.

PM MAIL   Вверх
almsc
Дата 30.1.2007, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



я спрашиваю почему именно цифры указываются?
PM MAIL   Вверх
amg
Дата 30.1.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(almsc @  30.1.2007,  12:30 Найти цитируемый пост)
я спрашиваю почему именно цифры указываются?
Не совсем понял. Какие цифры имеются в виду? (В Вашем посте последовательности цифр фигурируют в 3-х местах. Два раза в этой строке: @array[ 1, 3, 5, 7, 9 ] = qw(1 3 5 7 9 ); Здесь в 1-м случае цифрры - это индексы массива, во втором - содержимое списка. И третий раз - как результат печати, чередующиеся со словами.)


Это сообщение отредактировал(а) amg - 30.1.2007, 12:47
PM MAIL   Вверх
almsc
Дата 30.1.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.1.2007

Репутация: нет
Всего: нет



я не понимаю, как формируется это чередование?
PM MAIL   Вверх
amg
Дата 30.1.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Код

@array[ 1, 3, 5, 7, 9 ] = qw(1 3 5 7 9 );
Смотрим. @array[ 1, 3, 5, 7, 9 ] - это срез массива, в него входят 2-й, 4-й, ..., 10-й элементы, т.е ('one', 'three', 'five', 'seven', 'nine' ) или, что то же самое, qw(one three five seven nine). Эти элементы массива @array операцией присваивания мы заменяем элементами списка qw(1 3 5 7 9 ) (в этом списке цифры - это не индексы, а просто символы). При этом 1-й, 3-й, .., 9-й элементы массива не затрагиваются и остаются словами. Вот все.

Это сообщение отредактировал(а) amg - 30.1.2007, 13:12
PM MAIL   Вверх
Shaggie
Дата 30.1.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: нет
Всего: 72



Проще говоря:
Код

@array = qw ( zero one two three four five six seven eight nine );
# создаем массив из десяти элементов, где
# $array[0]="zero", $array[1]="one" и т.д.

@array[ 1, 3, 5, 7, 9 ] = qw(1 3 5 7 9 );
# то же самое, что
$array[1]=1;
$array[3]=3;
$array[5]=5;
$array[7]=7;
$array[9]=9;



--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.