Это новая функция определение , которая (вид) затеняет левый оператор деления \
в Base
, поскольку левый оператор деления уже определен для некоторых типов в Julia. Новое определение функции - \(x,y) = 1
(имена параметров функции не имеют значения), которое работает для всех типов переменных. Это предотвратит загрузку julia Base.\
из-за конфликта имен. Независимо от того, какой ввод ваш новый \
вернет одно и то же значение.
julia> x\y = 5
julia> a = 3; b = 4;
julia> a\b
5
julia> c = "Lorem ipsum"; d = "dolor";
julia> c\d
5
Если вы уже использовали \
, определенный в Base
, ваше переопределение выдаст ошибку о том, что расширение Base.\
требует явного импорта с помощью import Base.\
. Однако поведение определения \
после import Base.\
будет другим. Это расширит оператор Base.\
.
julia> 1\[1,3]
2-element Array{Float64,1}:
1.0
3.0
julia> import Base.\
julia> x\y=3
\ (generic function with 152 methods)
julia> 1\[1,3]
2-element Array{Int64,1}:
3
3