2, 3, nil, 4} -> 5
luajit 2.1.0-beta3
#{1, 2, 3, nil, 4} -> 3
Я только что объяснял это в англочятике ))
Почему же в одной версии вернуло 5, а в другой вернуло 3? Потому что интерпретатор во-первых можно настраивать, например при разметке массива можно взять разный оверхед таблички "на будущее" — и бинарный поиск будет начинаться с другого места. Во-вторых, массивы с дырками, разумеется, недетерминированы ) # это всегда бинарный поиск, вопрос — откуда он начинается.
Обсуждают сегодня