Начните писать программы на Julia в первый же день. Необходимы только минимальные знания в использовании компьютеров и программировании. Вы знаете что такое файл или каталог? Вам известны алгоритмы? Этого достаточно. Ничего лишнего. В этом справочнике раскрыты самые важные и часто затрагиваемые темы в краткой и ясной форме, а для желающих погрузиться в тему глубже представлены ссылки на необходимые источники информации. Подробные инструкции не упускают ни единого шага, а наглядные примеры полностью отображают в себе весь процесс работы. Вы всегда будете знать, что должно получиться в результате. Все примеры были протестированы на актуальной версии языка программирования Julia, доступной на момент написания данного справочника. Удобный дизайн оглавления позволяет быстро находить нужные примеры функции и команд. Нет нужды держать все в голове или постоянно лезть в интернет. Теперь третье издание с добавлением нового и обновлением старого.
Приведённый ознакомительный фрагмент книги «Julia. Язык программирования. Быстрый старт» предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других
Базовые операторы Julia
Следующие арифметические операторы поддерживаются для всех примитивных числовых типов:
Несколько простых примеров с использованием арифметических операторов:
julia> 1+10-5
6
julia> 2-6
–4
julia> 5*20/10
10.0
julia> 20\10
0.5
julia> 3^3 27
julia> 5.5%-2
1.5
Число, помещенное непосредственно перед идентификатором или круглыми скобками, например, 2x или 2(x+y), рассматривается как умножение.
Логические операторы
Для типов Bool поддерживаются следующие логические операторы:
Примеры использования логических операторов:
julia>!true
false
julia>!false
true
julia> true && true
true
julia> true && false
false
julia> false && false
false
julia> true true
true
julia> true false
true
julia> false false
false
Побитовые операторы
Следующие побитовые операторы поддерживаются для всех примитивных целочисленных типов:
julia> ~100
–101
julia> 121 & 232
104
julia> 121 232
249
julia> 121 ⊻ 232 #Знак юникода
145
julia> xor(121, 232)
145
julia> ~UInt32(121)
0xffffff86
julia> ~UInt8(121)
0x86
Операторы обновления
Каждый арифметические и побитовый оператор имеет обновляющую версию, которую можно сформировать, поставив знак равенства (=) сразу после оператора. Этот оператор обновления присваивает результат операции обратно своему левому операнду.
Версии всех двоичных арифметических и побитовых операторов:
Пример использования операторов обновления:
julia> x = 25
25
julia> x += 25
50
julia> x
50
Оператор обновления переопределяет переменную в левой части. В результате тип переменной может измениться:
julia> x = 0x01
0x01
julia> typeof(x)
UInt8
julia> x *= 2
2
julia> typeof(x)
Int64
Векторизированные “точечные” операторы
Для каждого бинарного оператора существует соответствующий"точечный"оператор, который применяет оператор поэлементно над многоэлементными структурами (массивы и т.п.).
Примеры использования “точечного” оператора:
julia> [2, 4,6].^2
3-element Vector{Int64}:
4
16
36
julia> x=[1 2 3 4 5; 6 7 8 9 10]
2×5 Matrix{Int64}:
1 2 3 4 5
6 7 8 9 10
julia> x.+1
2×5 Matrix{Int64}:
2 3 4 5 6
7 8 9 10 11
julia> x
2×5 Matrix{Int64}:
1 2 3 4 5
6 7 8 9 10
julia> x.+=1
2×5 Matrix{Int64}:
2 3 4 5 6
7 8 9 10 11
julia> x
2×5 Matrix{Int64}:
2 3 4 5 6
7 8 9 10 11
Обратите внимание,"точечные"операторы обновления изменяют исходные значения, в отличии от остальных, создающих новые.
Операторы сравнения
Для всех примитивных числовых типов определены стандартные операции сравнения:
Пример использования операторов сравнения:
julia> 2 == 2.0
true
julia> 3 == 5
false
julia> 3!= 5
true
julia> 3 < 5
true
Целочисленные числа сравниваются стандартным образом — путем сравнения битов. Числа с плавающей точкой сравниваются в соответствии со стандартом IEEE 754:
Конечные числа упорядочиваются обычным образом.
Положительный ноль равен, но не больше отрицательного нуля.
Inf равно самому себе и больше, чем все остальные, кроме NaN.
–Inf равно самому себе и меньше всех остальных, кроме NaN.
NaN не равно, не меньше и не больше ничего, включая самого себя.
Использование"точечных"операторов сравнения для многоэлементных структур возвращает булев массив с результатами сравнения для каждого элемента:
julia> [1,2,3,4,5].<= 3
5-element BitVector:
1
1
1
0
0
Сравнения в Julia можно объединять в цепочки:
julia> 10 < 15 <= 20 < 30 == 30 > 20 >= 10 == 10 < 30!= 5
true
julia> x=[1 2 3 4 5; 6 7 8 9 10]
2×5 Matrix{Int64}:
1 2 3 4 5
6 7 8 9 10
julia> 1.< x.< 7
2×5 BitMatrix:
0 1 1 1 1
1 0 0 0 0
Приоритет и ассоциативность операторов
Julia применяет следующий порядок и ассоциативность операций, от высшего к низшему:
Числовые коэффициенты, например, 2x, рассматриваются как умножение с более высоким старшинством, чем любая другая двоичная операция, за исключением ^, где они имеют старшинство только как экспонента:
julia> x = 3
3
julia> 2x^2
18
julia> 2^2x
64
Приведённый ознакомительный фрагмент книги «Julia. Язык программирования. Быстрый старт» предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других