Что означает оператор // в Юлии?

Aug 20 2020

скажем, у меня есть этот код:

a = 4//2

Это возвращает мне "2 // 1"

b = 4//3

Это вернет мне "4 // 3"

Я понимаю, что он возвращает значение a и b в простейшей форме. Но что тогда? Я думал, что этот оператор возвращает значение деления в целочисленном виде, убирая напоминание. Но не похоже, что это то, что он делает.

На самом деле у меня есть такой код:

x=Fun(identity,0..4π)
d=domain(x)
B=[ldirichlet(d),lneumann(d),rneumann(d)]
D=Derivative(d)
κ = 0.33205733621519630   
u0 = (1//2) * κ * x^2 

Я хотел знать, что здесь (1 // 2). Из того, что я думал ранее, это должно было быть равно нулю, но это не то, что здесь требуется. Может кто-нибудь уточнить, что здесь происходит и как работает оператор //?

Ответы

3 PrzemyslawSzufel Aug 20 2020 at 21:41

В Julia, когда вы чего-то не знаете, первое, что нужно сделать, это нажать, ?чтобы перейти в режим REPL справки, представленный help?>подсказкой. После нажатия ?введите интересующую вас команду:

help?> //
search: //

  //(num, den)

  Divide two integers or rational numbers, giving a Rational result.

  Examples
  ≡≡≡≡≡≡≡≡≡≡

  julia> 3 // 5
  3//5

  julia> (3 // 5) // (2 // 1)
  3//10

Еще один полезный способ проверить, что происходит в Julia, - это использовать dump:

julia> dump(2//4)
Rational{Int64}
  num: Int64 1
  den: Int64 2

Наконец, после комментария @DNF стоит отметить, что существует оператор целочисленного деления ÷(и соответствующая функция div), который вычисляет x / y, усеченный до целого:

julia> 13 ÷ 4
3