Вадим Никитин

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


Скачать книгу

округления, называемый RoundNearest. Он округляет до ближайшего целого числа, а ничьи округляются до ближайшего четного целого числа.

      Базовые операторы 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