Почему: = разрешено в качестве инфиксного оператора?

Я сталкивался с популярнымdata.table пакет и одна вещь, в частности, заинтриговали меня. Имеет оператор присваивания на месте

знак равно

Это не определено в базе R. На самом деле, если вы не загрузилиdata.table пакет, это вызвало бы ошибку, если бы вы попытались использовать его (например,a := 2) с сообщением:

Ошибка: не удалось найти функцию":="

Кроме того, почему:= Работа? Почему R позволяет вам определить:= как инфиксный оператор, в то время как любая другая инфиксная функция должна быть окружена%%например,

`:=` <- function(a, b) {
   paste(a,b)
}

"abc" := "def"

Очевидно, что это не должен быть альтернативный синтаксис%function.name% для определения инфиксных функций. Являетсяdata.table эксплуатируя некоторые причуды разбора R? Это взломать? Будет ли это "исправлено" в будущем?

Ответы на вопрос(2)

Ваш ответ на вопрос