Будучи новичком Юлии в этом месяце, сентябрь 2018 года, я только привыкаю к изначально незнакомому символу "@" для макросов и "!" символ для функций с изменяемыми входами. Правильно ли я предположить, что это просто стилистические символы для чтения людьми и что они не предоставляют компилятору никакой информации?
Я поднимаю это в контексте следующего кода, который, кажется, не соответствует стилю макроса, функции или чего-либо еще в Джулии, о которой я знаю. Я специально спрашиваю о большом "1234" ниже:
julia> big"1234" # big seems to be neither a macro or a function.
1234
julia> typeof(big"1234")
BigInt
julia> typeof(BigInt(1234))
BigInt
Мой вопрос: что такое большой в большом "1234"?
Редактировать: я думаю, что я получил свой ответ на основе комментария в https://discourse.julialang.org/t/bigfloat-promotion-rules-and-constants-in-functions/14573/4
"Обратите внимание: поскольку десятичные литералы преобразуются в числа с плавающей запятой при разборе, BigFloat (2.1) может не дать того, что вы ожидаете. Вместо этого вы можете предпочесть инициализировать константы из строк с помощью синтаксического анализа или использования литерала большой строки.
julia> BigFloat(2.1)
2.100000000000000088817841970012523233890533447265625
julia> big"2.1"
2.099999999999999999999999999999999999999999999999999999999999999999999999999986"
Таким образом, исходя из вышеприведенного комментария, большое в большом «1234» является «литералом большой строки».
Редактировать 2: Вышеприведенное является началом ответа, но принятый ниже ответ является гораздо более полным.