SceneKit: отложенное освобождение объектов UIViewController / SCNNode после UINavigationController Unwind

Недавно я начал использовать Python, и эта «функция» сбила меня с толку.

Если я хочу поменять значения двух переменных, в JavaScipt я бы сделал следующее:

var a = 0;
var b = 1;

var temp = a;
a = b;
b = temp;

Мне понадобится третья переменная, чтобы временно удерживать одно из значений. Очень простой обмен не будет работать, потому что обе переменные будут иметь одинаковое значение.

var a = 0;
var b = 1;

a = b; // b = 1 => a = 1
b = a; // a = 1 => b = 1

Представьте, что у вас два разных (красных и синих) ведра и две разные жидкости (вода и масло) в них, соответственно. Теперь попробуйте поменять ведра / жидкости (вода в синем и масло в красном ведре). Вы не можете сделать это, если у вас нет дополнительного ведра.

Python занимается этим с помощью «более чистого» способа / решения: Назначение набора .

a = 0
b = 1

print(a, b) # 0 1

# temp = a
# a = b
# b = temp

a, b = b, a # values are swapped

print(a, b) # 1 0

Я думаю, таким образом Python автоматически создает переменные «temp», и нам не о чем беспокоиться.

0
задан Klaus 4 March 2019 в 21:51
поделиться