Исходя из обсуждения в комментариях, я должен написать, что предупреждение говорит вам, что если вы хотите использовать name
в своем коде, вы должны указать, какой модуль name
вы хотите использовать.Вы можете сделать это , указав , указав имя модуля / пакета, например LightXML.name
или JuMP.name
.
Если вы хотите создать псевдоним для,скажем, LightXML.name
, это также возможно.
using LightXML
# make `name2` be an alias for `LightXML.name`
const name2 = LightXML.name # `name2` refers to `LightXML.name` but `LightXML.name` still exists
using JuMP
using JuMP: name # tell the compiler `name` without qualifiers refer to `JuMP.name` so you do not have to qualify it
Это на самом деле не дает изменения имени LightXML.name
, а скорее создает псевдоним для LightXML.name
.После этого вы можете написать name2
вместо LightXML.name
или по-прежнему использовать LightXML.name
как есть.
Обратите внимание, что const
является важной деталью, в противном случае всякий раз, когда вы используете name2
, Джулия должна будетПосмотрите, изменилось ли то, на что ссылается name2
, и это снизит производительность.
Еще одна вещь, которую стоит отметить, - если вы хотите использовать name
без квалификаторов для ссылки на JuMP.name
, вы пишете using JuMP: name
, чтобы указать компилятору, какой name
следует использовать (поскольку еще есть два name
s).Однако вы должны сделать это до , используя name
без какого-либо спецификатора в вашем коде.
Следовательно, следующее не сработает.
julia> using LightXML
julia> name # we used `name` here to refer to `LightXML.name `
julia> using JuMP # this will give you the same warning in your question
julia> using JuMP: name # this will give you a warning and be **ignored**
# `name` continues to refer to `LightXML.name` rather than `JuMP.name`