Читаем Julia. Язык программирования. Быстрый старт полностью

Дополнительная информация

Для получения справки по всем командам пакетного менеджера введите ? или help в приглашении:


(@v1.9) pkg> help


Для получения справки по отдельной команде с примерами введите ? <имя команды> в приглашении, например:


(@v1.9) pkg> ?add


Полное руководство по менеджеру пакетов, доступно на официальном сайте https://pkgdocs.julialang.org


Актуальные и рекомендуемые сервисы для навигации по экосистеме пакетов на официальном сайте https://julialang.org/packages/

Переменные

Переменная в Julia – это имя, привязанное к значению. Она используется, когда вы хотите сохранить значение (полученное, например, после математических вычислений) для последующего использования. Например:


? Присвоить значение 100 переменной x

julia> x = 100

100


? Выполнение математических операций со значением x


julia> x * 5

500


? Переназначить значение x


julia> x = 10 + 10

20


? Можно присваивать и значения других типов, например, строки текста


julia> x = "Hello World!"

"Hello World!"


Присвоение "имя = значение" привязывает переменную имени к значению, вычисленному в правой части, и все присваивание рассматривается Julia как выражение, равное значению правой части. Это означает, что присваивания можно объединять (одно и то же значение присваивается нескольким переменным переменная1 = переменная2 = значение) или использовать в других выражениях, а также то, почему их результат отображается в REPL как значение правой части. Например, здесь значение 4 из b = 2+2 используется в другой арифметической операции и присваивании:


julia> a = (b = 2 + 2) * 5

20


julia> a

20


julia> b

4


При знакомстве с переменными в Julia у новых пользователей часто возникает путаница между присвоением имени и изменением значения. Если вы выполнили a = 2, а затем a = 3, то вы изменили имя a, чтобы оно ссылалось на новое значение 3. Вы не изменили число 2, поэтому 2+2 по-прежнему дает 4, а не 6! Это различие становится более очевидным при работе с мутабельными типами данных, такими как массивы, содержимое которых может быть изменено:


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, исходя из того, что в большинстве случаев используются действительные числа, а не комплексные, что и вызывало ошибку. Теперь тот же пример используя комплексную форму записи:


julia> x=-2.0+0im

–2.0 + 0.0im


julia> typeof(x)

ComplexF64 (alias for Complex{Float64})


julia> sqrt(x)

0.0 + 1.4142135623730951im


В этом случае Julia определяет тип значения исходя из формы записи как Complex{Float64}, по сути формой записи мы задали тип значения переменной.

Типы есть только у значений. У переменных типов нет. Переменные – это просто имена, связанные со значениями, хотя для простоты можно говорить "тип переменной", как сокращение от "тип значения, на которое ссылается переменная".


Перейти на страницу:

Похожие книги

Цифровой журнал «Компьютерра» № 1
Цифровой журнал «Компьютерра» № 1

СОДЕРЖАНИЕ НОМЕРА:В Новый год — в новых форматах. Автор: Сергей Вильянов.Железо-2009: победы и достижения. Автор: Алексей Стародымов.BrowserLinux: проще некуда. Автор: Андрей Крупин.4G. Шанс России преодолеть цифровой разрыв. Автор: Юрий Домбровский.Beyerdynamic DTX 60 и MMX 100: ушки-люкс. Автор: Константин Иванов.Тысяча душ. Автор: Василий Щепетнев.Самые ожидаемые программные продукты 2010 года. Автор: Андрей Крупин.Новогодние подарки — советы по выбору гаджетов. Автор: Игорь Осколков.Корпус Zalman GS1000 Plus: пять с плюсом. Автор: Константин Иванов.2009 год глазами IT-бизнеса (обновлено). Автор: Марина Пелепец.Голубятня: Антихрист. Автор: Сергей Голубицкий.Приручение Коалы или два месяца с Ubuntu 9.10. Авторы: Григорий Рудницкий, Андрей Крупин.Обзор нетбука Manli iii M3. Автор: Игорь Осколков.Gazzetta, журнал, programma… Автор: Ваннах Михаил.Можно ли нарисовать улицу на картах Nokia? Автор: Георгий Киселев.Новогодние подарки — советы по выбору нетбуков и ноутбуков. Автор: Игорь Осколков.Программные алкотестеры. Автор: Андрей Крупин.Будущее Интернета. Автор: Михаил Карпов.Ни слова о Жомини. Автор: Василий Щепетнев.Беседы о современной физике. Автор: Алла Аршинова.Что готовит нам 2010 год. Автор: Алексей Лукацкий.Голубятня: Нефилимы. Автор: Сергей Голубицкий.Новогодние украшательства Windows. Автор: Андрей Крупин.Компьютеррные события года. Авторы: Сергей Вильянов, Василий Щепетнев, Юрий Ревич, Анатолий Вассерман, Козловский Евгений, Андрей Крупин, Михаил Карпов, Алексей Стародымов, Игорь Осколков.Море возможностей. Автор: Сергей Еремин.Logitech: необычная гарантия. Автор: Алексей Стародымов.Новогодние подарки — советы по выбору телефонов и смартфонов. Автор: Игорь Осколков.

Журнал «Компьютерра» , Компьютерра

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT