You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 using over import to 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.
The text was updated successfully, but these errors were encountered:
That particular example you show is specifically talking about avoiding using import to add methods to functions defined by other packages.
For usage of code using import LinearAlgebra is reasonable but personally I'd probably end up doing using LinearAlgebra: LinearAlgebra for the same effect.
That particular example you show is specifically talking about avoiding using import to add methods to functions defined by other packages.
Yeah, I realized that just now, I was tunnel visioning on the syntactic differences between import and using. Thank you for the clarification.
However, I still feel like the advice on import vs using could be a bit more nuanced — it would make sense to me if there was a line or two about when to prefer import, because from a more traditional software engineering perspective (compared to scientific computing) it has it's advantages.
This part of the README
My problem
I don't understand how
using
is more explicit and clearer thanimport
.Consider this example:
Imagine this code is part of some bigger library and somebody forgot to add the prefix
LinearAlgebra
toeigvals
, which I believe is the intended style because then the namespace is clear.We get a nice error, because
eigvals
is not in our namespace. However, this code is not following the Blue style guide because ofWriting this using the blue style guide we don't get an error, so mistakes like this can easily go unnoticed.
also,
what imports, imports as in
import
or imports in general? An example would make it clearer.The text was updated successfully, but these errors were encountered: