Size: a a a

2020 November 28

YM

Yuri Myasoedov in use Perl or die;
Sergey Zhmylove
В перле нельзя по значению
источник

YM

Yuri Myasoedov in use Perl or die;
#!/usr/bin/perl

my @a = (1, 2, 3);
inc_array(@a);

print "@a";

sub inc_array {
   for (@_) {
       $_++;
   }
}
источник

VG

Vadim Goncharov in use Perl or die;
Sergey Zhmylove
В перле нельзя по значению
ты сам с сигнатурами фактически привёл пример "по значению"
источник

YM

Yuri Myasoedov in use Perl or die;
посмотри что выведет
источник

АК

Алексей Клименко... in use Perl or die;
Алексей Клименко
В javascript всё передаётся по значению, но объекты (и массивы) при этом являются как бы «указателями» на настоящий объект, и поэтому изменение внутренностей объекта будет общим; но изнутри функции нельзя приравнять саму переменную уже другому объекту.

В присвоениях и условиях (объекты равны если это тот же самый объект) то же самое. Достаточно один раз понять!
В Delphi специальным синтаксисом (var / out / const) можно заставить компилятор передавать по ссылке, а не по значению.
При этом, фактически там передаётся указатель, а при использовании неявно происходит разыменовывание.

Но некоторые втроенные штуки типа динамических массивов и строк – передаются методом copy-on-write, то есть как бы по значению, но экономно (особенно если всё-таки сделать const).
источник

SZ

Sergey Zhmylove in use Perl or die;
Vadim Goncharov
ты сам с сигнатурами фактически привёл пример "по значению"
Да нет же :)
источник

VG

Vadim Goncharov in use Perl or die;
а чо дельфи? эта разница и в Си есть
источник

VG

Vadim Goncharov in use Perl or die;
Sergey Zhmylove
Да нет же :)
как нет, когда да
источник

АК

Алексей Клименко... in use Perl or die;
Vadim Goncharov
а чо дельфи? эта разница и в Си есть
В чистом Си ж только по значению всё.
источник

VG

Vadim Goncharov in use Perl or die;
Алексей Клименко
В чистом Си ж только по значению всё.
в нём просто ссылки явно передавать надо, а так суть та же
источник

АК

Алексей Клименко... in use Perl or die;
Vadim Goncharov
в нём просто ссылки явно передавать надо, а так суть та же
Так это передача указателя. По значению…
источник

VG

Vadim Goncharov in use Perl or die;
но самое смешное, что всё это не имеет отношения к исходному примеру на питоне, который был НЕ про аругменты
источник

АК

Алексей Клименко... in use Perl or die;
Алексей Клименко
Так это передача указателя. По значению…
Я как бы в _любом_ языке смогу переменную в массив положить и индекс массива передать.
источник

SZ

Sergey Zhmylove in use Perl or die;
Yuri Myasoedov
посмотри что выведет
Ну очевидно, что он должен вывести 234 через $"
источник

SZ

Sergey Zhmylove in use Perl or die;
Vadim Goncharov
но самое смешное, что всё это не имеет отношения к исходному примеру на питоне, который был НЕ про аругменты
Ну это понятно, просто в перле логика обращения к переменным обратная, я там выше пример тоже приводил
источник

АК

Алексей Клименко... in use Perl or die;
Вот в C++ дичь с & начинается, когда аж присваивать становится можно чёрти во что, потому что lvalue.
источник

SZ

Sergey Zhmylove in use Perl or die;
Алексей Клименко
Я как бы в _любом_ языке смогу переменную в массив положить и индекс массива передать.
В brainfuck не сможешь
источник

АК

Алексей Клименко... in use Perl or die;
Sergey Zhmylove
В brainfuck не сможешь
Подразумевается, «в языке где есть массивы».
источник

SZ

Sergey Zhmylove in use Perl or die;
Алексей Клименко
Вот в C++ дичь с & начинается, когда аж присваивать становится можно чёрти во что, потому что lvalue.
Ну в перл есть lvalue subroutine, например :р
источник

АК

Алексей Клименко... in use Perl or die;
Sergey Zhmylove
Ну в перл есть lvalue subroutine, например :р
Знаю!

Помню как скипнул этот раздел справки ))
источник