Просто присвойте этим полям имя переменной, чтобы было ясно, что вы игнорируете эти значения. Переменная _
является отличным соглашением для этого.
let [_, b, c] = [1, 2, 3]
Или, чтобы игнорировать первые два термина:
let [_, _, c] = [1, 2, 3]
Обратите внимание, что вы можете использовать его более одного раза в :let-unpack
назначение.
В некоторых языках, таких как Python, специальная переменная _
, в которой назначения к ней нигде не сохраняются. В Vimscript это не так, переменная с таким именем допустима и существует. Но если вы выполняете это назначение изнутри функции (что, вероятно, имеет место), тогда область действия переменной будет ограничена этой функцией, и загрязнение пространства имен не должно иметь значения.
Вот реальный пример использования из хорошо известного подключаемого модуля vim-figitive от tpope:
let [_, to, changes; __] = matchlist(a:line, '^ \(.\{-\}\) \+|\zs \(.*\)$')
Обратите внимание, что он использует синтаксис ;
для игнорирования всех полей четвертого и далее (это полезно знать при распаковке больших списков.) Он использует _
для игнорирования первого поля и __
для игнорирования остальных. (Обратите внимание, что использование _
для обоих также было бы хорошо.)
В документации Vim также есть ссылки на использование _
в качестве имени для переменной, которую следует игнорировать. Для примера использования map()
:
Если вы не используете «ключ», вы можете использовать короткое имя:
call map(myDict, {_, val -> 'item: ' . val})