Переменные
Переменная в Julia — это имя, связанное (или привязанное) к значению. Она полезна, когда нужно сохранить значение (например, полученное после выполнения каких-то математических операций) для последующего использования. Например:
# Assign the value 10 to the variable x julia> x = 10 10 # Doing math with x's value julia> x + 1 11 # Reassign x's value julia> x = 1 + 1 2 # You can assign values of other types, like strings of text julia> x = "Hello World!" "Hello World!"
Julia предоставляет чрезвычайно гибкую систему именования переменных. Имена переменных чувствительны к регистру и не имеют семантического значения (то есть язык не будет относиться к переменным по-разному в зависимости от их имён).
julia> x = 1.0 1.0 julia> y = -3 -3 julia> Z = "My string" "My string" julia> customary_phrase = "Hello world!" "Hello world!" julia> UniversalDeclarationOfHumanRightsStart = "人人生而自由,在尊严和权利上一律平等。" "人人生而自由,在尊严和权利上一律平等。"
Разрешены имена с использованием Юникода (в кодировке UTF-8):
julia> δ = 0.00001 1.0e-5 julia> 안녕하세요 = "Hello" "Hello"
В Julia REPL и некоторых других редакторах Julia можно вводить многие математические символы Юникода, набрав имя символа в формате обратной косой черты LaTeX, а затем нажав клавишу Tab. Например, имя переменной δ можно ввести, набрав \delta-Tab, или даже α̂₂ набрав \alpha-Tab-\hat-Tab-\_2-Tab.
Julia даже позволит вам переопределять встроенные константы и функции при необходимости:
julia> pi π = 3.1415926535897... julia> pi = 3 WARNING: imported binding for pi overwritten in module Main 3 julia> pi 3 julia> sqrt(100) 10.0 julia> sqrt = 4 WARNING: imported binding for sqrt overwritten in module Main 4
Однако, это явно не рекомендуется, чтобы избежать возможных путаниц.
Разрешенные имена переменных
Имена переменных должны начинаться с буквы (A-Z или a-z), символа подчеркивания или подмножества кодовых точек Юникода, больших 00A0; в частности, разрешены категории символов Юникода Lu/Ll/Lt/Lm/Lo/Nl (буквы), Sc/So (валюты и другие символы), а также несколько других символов, похожих на буквы (например, подмножество математических символов Sm). Последующие символы также могут включать ! и цифры (0-9 и другие символы в категориях Nd/No), а также другие кодовые точки Юникода: диакритические знаки и другие знаки изменения (категории Mn/Mc/Me/Sk), некоторые знаки пунктуации-соединители (категория Pc), штрихи и несколько других символов.
Операторы, такие как +, также являются допустимыми идентификаторами, но парсятся специально. В некоторых контекстах операторы могут использоваться как переменные; например, (+) относится к функции сложения, а (+) = f переназначит её. Большинство инфиксных операторов Юникода (в категории Sm), таких как ⊕, парсятся как инфиксные операторы и доступны для пользовательских методов (например, вы можете использовать const ⊗ = kron для определения ⊗ как инфиксного произведения Кронекера).
Единственными явно запрещёнными именами для переменных являются имена встроенных операторов:
julia> else = false ERROR: syntax: unexpected "else" ... julia> try = "No" ERROR: syntax: unexpected "=" ...
Стилевые соглашения
Хотя Julia накладывает мало ограничений на допустимые имена, стало полезным принять следующие соглашения:
- Имена переменных пишутся строчными буквами.
- Разделение слов может быть обозначено символом подчеркивания (
'_'), но использование символов подчеркивания не рекомендуется, если имя не будет трудночитаемым иначе. - Имена
TypeиModuleначинаются с заглавной буквы, а разделение слов выполняется с использованием верхнего верблюжьего регистра вместо символов подчеркивания. - Имена
functionиmacroпишутся строчными буквами без символов подчеркивания. - Функции, которые записывают в свои аргументы, имеют имена, которые оканчиваются на
!. Иногда их называют «изменяющими» или «локальными» функциями, потому что они предназначены для внесения изменений в их аргументы после вызова функции, а не только для возврата значения.
© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.5/manual/variables/