Как показано в методе ниже, я не понимаю, как работает «оператор сравнения». Если определенный «массив стека» изначально пуст, как можно сравнить элементы хеша «OPPOSITE» с последним элементом пустого массива? Производится ли сравнение с операндом «OPPOSITE [dir]»? Даже если это так, это все еще не ясно.
Спасибо
код:
OPPOSITE = {
"NORTH" => "SOUTH",
"SOUTH" => "NORTH",
"EAST" => "WEST",
"WEST" => "EAST"
}
def dirReduc(arr)
stack = []
arr.each do |dir|
OPPOSITE[dir] == stack.last ? stack.pop : stack.push(dir)
end
stack
end
arr = ["NORTH", "SOUTH", "SOUTH", "EAST", "WEST", "NORTH", "WEST"]
print dirReduc(arr)