Как мне использовать «мой» для объявления массива и элемента в Perl?

Если у меня есть массив, скажем @test и ссылаемся на элементы массива как $test[0] и т. д., как должен выглядеть мой оператор? одно из следующих?

my (@test,$test); # array and element
my (@test); #just the array
my ($test);

См. также stackoverflow.com/q/23031754/2173773

Håkon Hægland 09.07.2024 08:24

Вы спрашиваете, нужно ли вам объявлять $test для доступа к элементам массива @test? Вы не знаете.

TLP 09.07.2024 12:34
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
2
2
87
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Все три возможны. Если переменная всего одна, скобки не нужны. Кроме того, обычно не рекомендуется использовать одно и то же имя для разных типов переменных (массива и скаляра). $test[0] — первый элемент @test, он не имеет никакого отношения к скалярной переменной $test, но во избежание путаницы лучше не использовать одно и то же имя.

Кроме того, при объявлении скаляров и массивов лучше начинать со скаляров, чтобы вы могли фактически заполнить переменные.

my ($test, @tests);  # Better naming. Parentheses needed.
my @tests;           # Declares an array.
my $test;            # Declares a scalar, not related to any array.

my ($one, @rest) = 'a' .. 'z';  # Populates both the scalar and the array.
my (@all, $last) = 'a' .. 'z';  # !! Populates just the array.

Если вам просто нужен массив, вам нужно только объявить массив:

my @test;

Когда Perl видит $test[0], он знает, что это одноэлементный доступ к массиву @test.

Объявление my $test будет относиться к совершенно отдельной скалярной переменной, не имеющей ничего общего с массивом.

Спасибо вам за разъяснение. это имеет смысл.

deerey 26.07.2024 02:45

Другие вопросы по теме