$a;
$a();
($a,$b).foo ...
Первый вызов $a
сам по себе
Это не "вызов". Это всего лишь упоминание об этом, ака "использовать". (Примечание: это использование «использования» не имеет ничего общего с ключевым словом use
в выражении use
.)
ПРЕДУПРЕЖДЕНИЯ для / home / jmerelo / Code / raku / my-raku-examples / sunk-map.p6: Бесполезное использование $ a в контексте стока (строка 6)
Верно. Просто упоминать это так бесполезно. Вы не делаете ничего со значением $a
(которому была назначена функция). Вы просто опускаете его на пол.
Однако, если оставить .()
или ()
позади или использовать их в (как я думал, это было) контекст приемника на карте, это не привело к любое предупреждение.
Верно. Они вызывают .CALL-ME
на левой стороне. Они считаются потенциально полезными независимо от того, используется ли в коде какое-либо значение, возвращаемое вызовом. Так что нет никакого предупреждения, несмотря на то, что он находится в контексте приемника (хотя, возможно, контекст приемника сам по себе зависит от контекста, а на уровне компилятора они даже не считаются находящимися в контексте приемника; я не знаю).
cf мой комментарий о похожей ситуации в perl.