-
Notifications
You must be signed in to change notification settings - Fork 32
Description
This part of the README
My problem
I don't understand how using is more explicit and clearer than import.
Consider this example:
Imagine this code is part of some bigger library and somebody forgot to add the prefix LinearAlgebra to eigvals, which I believe is the intended style because then the namespace is clear.
julia> import LinearAlgebra
x = [1 0 0; 0 1 0; 0 0 1]
print(eigvals(x))
ERROR: UndefVarError: eigvals not defined
We get a nice error, because eigvals is not in our namespace. However, this code is not following the Blue style guide because of
Prefer the use of
usingoverimportto ensure that extension of a function is always explicit and on purpose
Writing this using the blue style guide we don't get an error, so mistakes like this can easily go unnoticed.
julia> using LinearAlgebra
x = [1 0 0; 0 1 0; 0 0 1]
print(eigvals(x))
[1.0, 1.0, 1.0]
also,
Note: Prefer the use of imports with explicit declarations when writing packages.
what imports, imports as in import or imports in general? An example would make it clearer.