Добавление именованного элемента в список имен - гарантированно добавляется в конец списка?
При добавлении именованного элемента в список гарантируется, что элемент будет добавлен в конец списка? На практике это похоже на то, но не уверен, что это опасное предположение?
test = list()
test[[ "one" ]] = 1
test[[ "two" ]] = 2 # will always appear after "one"?
test[[ "three" ]] = 3 # will always appear after "two"?
Ответы
Ответ 1
Если это не задокументировано (и это не похоже), я бы не стал на него положиться. Вы можете убедиться, что оно появилось в конце списка, сделав что-то вроде:
test <- list()
test <- c(test, one=1)
test <- c(test, two=2)
test <- c(test, three=3)
Ответ 2
Я подозреваю, что если вы углубились в C-код R, тогда вы увидите, что это правда, но, как говорит Джошуа, его не документировано. Вы можете спросить у R-dev мнение о том, должно ли такое поведение документироваться. Возможно, уже существует существующий код, который зависит от него.