Julia. Язык программирования. Быстрый старт - страница 8

Шрифт
Интервал



julia> a=[1,2,3]

3-element Vector{Int64}:

1

2

3


julia> b=a

3-element Vector{Int64}:

1

2

3


Здесь строка b = a не создает копию массива a, а просто связывает имя b с тем же массивом: a и b "указывают" на один массив [1,2,3] в памяти.

Изменим значение первого элемента массива:


julia> a[1] = 42

42


Присваивание a[i] = value изменяет содержимое массива, измененный массив будет виден через имена a и b:


julia> a

3-element Vector{Int64}:

42

2

3


julia> b

3-element Vector{Int64}:

42

2

3


Пусть a теперь является именем другого объекта:


julia> a= 3.14159

3.14159


Установка a = 3.14159 не изменяет массив, а просто привязывает a к другому объекту, массив по-прежнему доступен через b:


julia> b

3-element Vector{Int64}:

42

2

3


Имена переменных в Julia могут быть любой длины,а также могут содержать в себе почти все символы Unicode, но не могут начинаться с цифры. В именах можно использовать прописные и строчные буквы, символ подчеркивания ('_') также может использоваться в имени переменной в любом месте. Имена переменных чувствительны к регистру.

Единственными явно запрещенными именами переменных являются имена встроенных ключевых слов: baremodule, begin, break, catch, const, continue, do, else, elseif, end, export, false, finally, for, function, global, if, import, let, local, macro, module, quote, return, struct, true, try, using, while.

Примеры допустимых и недопустимых имен:


julia> х1 = 100

100


julia> 1x=100

ERROR: syntax: "1" is not a valid function argument name around REPL[2]:1


julia> ●="Точка"

"Точка"


julia> text@ = "Строка текста"

ERROR: syntax: extra token "@" after end of expression

Типы данных

По умолчанию Julia автоматически определяет какой тип данных использовать для значения переменной, но в некоторых случая, во избежании ошибок, следует указать тип данных для значений вручную.

Ниже приведен пример такой ошибки. Здесь функция typeof() возвращающая тип аргумента, а sqrt() – корень квадратный из аргумента:


julia> x=-2.0

–2.0


julia> typeof(x)

Float64


julia> sqrt(x)

ERROR: DomainError with -2.0:

sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).


Происходит следующее: Julia автоматически определяет тип значения переменной, как Float64, исходя из того, что в большинстве случаев используются действительные числа, а не комплексные, что и вызывало ошибку. Теперь тот же пример используя комплексную форму записи: