banner banner banner
Julia. Язык программирования. Быстрый старт
Julia. Язык программирования. Быстрый старт
Оценить:
Рейтинг: 0

Полная версия:

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

скачать книгу бесплатно


? 1.Интерактивный способ – ввести ] в консоли REPL, чтобы войти в «особый» режим pkg. Приглашение изменится с julia> на (vX.Y) pkg>, где vX.Y – версия активной среды Julia. Затем вы можете запустить любые команды диспетчера пакетов или вернуться в обычный режим интерпретатора с помощью комбинации клавиш CTRL-C или клавиши BACKSPACE в начале строки.

? 2.Способ API заключается в том, чтобы импортировать модуль Pkg в код программы (using Pkg), а затем выполнить команду Pkg.<команда менеджера пакетов>(<аргументы команды>). Очевидно, ничто не мешает вам использовать подход API и в интерактивном сеансе, но в специальном пакетном режиме есть автозавершение и другие полезные функции, которые делают его более удобным в использовании.

Обратите внимание, что два интерфейса не на 100 % совместимы, а интерфейс API несколько более строгий.

Некоторые из полезных команд диспетчера пакетов:

? status: Извлекает список (имя и версию) локально установленных пакетов.

? update: Обновляет локальный индекс пакетов и все локальные пакеты до последней версии.

? add <имя пакета>: Автоматически загружает и устанавливает заданный пакет. Для нескольких пакетов используйте add <имя пакета 1> <имя пакета 2>.

? add <имя пакета>#master, add <имя пакета>#branchName или add <имя пакета>#vX.Y.Z: Извлекает главную ветвь данного пакета, определенную ветвь или определенный выпуск соответственно.

? free <имя пакета>: Возвращает пакет к последнему выпуску.

? rm <имя пакета>: Удаляет пакет и все зависимые от него пакеты, которые были автоматически установлены только для него.

? add https://github.com/<имя репозитория>/<имя пакета>.jl: Извлекает незарегистрированный пакет по URL-адресу (здесь это GitHub).

Использование пакетов

Чтобы получить доступ к функциональным возможностям установленного пакета, вам необходимо использовать команду using или import. Разница между ними заключается в следующем:

? Использование пакета позволяет получить прямой доступ к функциям пакета. Просто используйте команду using <имя пакета> в консоли REPL или поместите в начало файла скрипта.

? Импорт пакета делает то же самое, но помогает поддерживать чистоту пространства имен, так как затем вам нужно обращаться к функциям пакета, используя их полные имена <имя пакета>.<имя функции>. Вы можете использовать псевдонимы или выбрать импорт только подмножества функций (к которым вы затем сможете получить прямой доступ).

Например, чтобы получить доступ к функции now() из пакета Dates (идет в комплекте дистрибутива), вы можете сделать следующее:

? Получите прямой доступ к функциям пакета с помощью using <имя пакета> :

julia> using Dates

julia> now()

2023-05-13T20:23:03.187

? Получите доступ к функциям пакета, используя их полные имена, с помощью import <имя пакета>:

julia> import Dates

julia> Dates.now()

2023-05-13T20:43:04.801

? Получите прямой доступ к функциям пакета с помощью import <имя пакета>:<имя функции> :

julia> import Dates:now

julia> now()

2023-05-13T20:46:53.542

Наконец, вы также можете получить доступ к функциям любого исходного файла Julia, используя эту строку:

include("<путь к файлу><имя файла>.jl")

Когда эта строка выполняется, включенный файл полностью запускается (не только анализируется), и любой определенный там символ становится доступным в области видимости (область кода, в которой видна переменная) относительно того места, где было вызвано включение.

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

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

(@v1.9) pkg> help

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

(@v1.9) pkg> ?add

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

Актуальные и рекомендуемые сервисы для навигации по экосистеме пакетов на официальном сайте https://julialang.org/packages/ (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