Skip to content

Commit

Permalink
doc: clarify FAQ difference between "using" and "import" (#47614)
Browse files Browse the repository at this point in the history
Fix #43425

Co-authored-by: Allen Hill <halleysfifthinc@users.noreply.github.com>
  • Loading branch information
udohjeremiah and halleysfifthinc authored Feb 10, 2023
1 parent 3283e20 commit d6baad6
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions doc/src/manual/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -818,10 +818,13 @@ to strings); similarly, `repeat` can be used instead of `^` to repeat strings. T

### What is the difference between "using" and "import"?

There is only one difference, and on the surface (syntax-wise) it may seem very minor. The difference
between `using` and `import` is that with `using` you need to say `function Foo.bar(..` to
extend module Foo's function bar with a new method, but with `import Foo.bar`,
you only need to say `function bar(...` and it automatically extends module Foo's function bar.
There are several differences between `using` and `import`
(see the [Modules section](https://docs.julialang.org/en/v1/manual/modules/#modules)),
but there is an important difference that may not seem intuitive at first glance,
and on the surface (i.e. syntax-wise) it may seem very minor. When loading modules with `using`,
you need to say `function Foo.bar(...` to extend module `Foo`'s function `bar` with a new method,
but with `import Foo.bar`, you only need to say `function bar(...` and it automatically extends
module `Foo`'s function `bar`.

The reason this is important enough to have been given separate syntax is that you don't want
to accidentally extend a function that you didn't know existed, because that could easily cause
Expand Down

0 comments on commit d6baad6

Please sign in to comment.