Мое предположение заключается в том, что компилятор не знает, какие элементы массива являются «свободными» и для чего нужен деструктор для запуска при отбрасывании массива.
Попробуйте сохранить Option<T>
, который имеет a .take()
, который позволит вам перемещать элемент из массива.
Выражение, которое вы вызываете, возвращает кортеж, а не одно значение. pdf, _ =
называется распаковкой кортежей - он принимает значения кортежа (в этом случае два элемента) и сохраняет первый в первой переменной, а второй - во второй переменной. Таким образом, pdf
получает первый элемент в кортеже, а _
установлен на второй.
_
не является особым символом или чем-то еще, это просто соглашение для переменная, на которой вы действительно не заботитесь, но для синтаксиса нужен идентификатор.
Похоже, выражение возвращает кортеж , содержащий два элемента. pdf, _ =
означает распаковать кортеж, назначая первое значение pdf
, а второе значение - _
.
Среди других использует подчеркивание часто используется как имена переменных, когда вам не нужно или не будет использовать содержимое переменной, но для python требуется идентификатор.