Coding/Learn/julia/julia modules exports
Learn Julia Programming & High-Performance Computing
01.Introduction to Julia
02.Syntax, Comments & Output
03.Variables & Unicode Identifiers
04.Numbers & Mathematical Operators
05.Strings, Characters & Interpolation
06.Booleans & Comparison Operators
07.Conditional Statements & Ternary Operator
08.For Loops & Multi-Dimensional Iteration
09.While Loops & State Iteration
10.Break & Continue Statements
11.Array & Generator Comprehensions
12.Exception Handling: Try, Catch, Finally & Throw
13.Function Definition & One-Liner Compact Syntax
14.Positional, Default & Keyword Arguments
15.Anonymous Functions, Lambdas & Do-Block Syntax
16.Multiple Dispatch: Core Architecture
17.Broadcasting & Dot Syntax (Vectorization)
18.Higher-Order Functions & Recursion
19.Tuples & NamedTuples
20.1D Arrays (Vectors) & 1-Based Indexing
21.Matrices & Multidimensional Arrays
22.Dictionaries (Dict) & Key-Value Maps
23.Sets & Set Algebraic Operations
24.Ranges & Lazy Iterators
25.Type Hierarchy & Abstract Types
26.Immutable Composite Types (struct)
27.Mutable Structs (mutable struct)
28.Parametric Types & Generic Data Structures
29.Inner & Outer Constructors
30.Type Conversions & Promotion Rules
31.Symbols & Expression Objects (AST)
32.Quoting Expressions & Interpolation ($)
33.Code Evaluation: eval() & Scoping Rules
34.Writing Macros: macro ... end & @macroexpand
35.Macro Hygiene & esc()
36.Built-in Diagnostic Macros (@show, @time, @assert, @inbounds)
37.Modules, Namespaces & Exports
38.File I/O: Reading & Writing Files
39.Package Manager (Pkg)
40.Text Data Processing & Parsing
41.Reproducible Project Environments
42.Performance Optimization & Type Stability
43.Multi-Threading with Threads.@threads
44.Asynchronous Tasks & Channels (Coroutines)
45.SIMD Vectorization & @simd
46.Memory Allocations & In-Place Mutation (!)
47.LinearAlgebra: Matrix Multiplication & Inverses
48.Matrix Factorizations & Solving Linear Systems (A \ b)
49.Statistics & Random Number Generation
50.Numerical Calculus & Polynomial Evaluation
51.Unit Testing with Test Standard Library
52.Comprehensive Practice Challenges
53.Final Knowledge Assessment Quiz
54.Capstone Project: High-Performance Scientific Simulation
55.Verified Julia Developer Certificate
Course Certificate0%

Complete all lessons to earn

LearnModules, Namespaces & Exports
37 / 55 0%
Lesson 37 of 55
9 mins read

Modules, Namespaces & Exports

PreviousNext Lesson
In Plain English

Modules encapsulate code into independent global namespaces. Learn to define modules, export public APIs with export, and consume functionality with using and import.

Deep Dive: How It Works

module Definition: module Geometry export circle_area; circle_area(r) = π*r^2 end.

using vs import: using brings exported symbols directly into the current namespace; import requires explicit module prefixing or allows adding new methods to imported functions.

Submodules: Modules can be nested hierarchically inside other modules.

PointCore Rules to Remember

Point star
Namespace Isolation: Prevent global variable collisions across large software architectures.
Point star
Explicit export API: Control exactly which functions and types are exposed to callers.

Live Interactive Example

Hit Run Code to see it live
Defining and Consuming a Custom Module
Python 3.12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Output Console
Click "Run Code" to view the rendered output.
How it works: using .StatisticsHelper brought mean_val and variance_val into scope.

Your Turn: Micro Challenge

No pressure! Edit the starter code below and test your solution with instant feedback.

Micro Exercise

Define MathModule and Export Double

  • PointDefine a module `MathModule` that exports `double_val(x) = 2x`.
  • PointLoad it with `using .MathModule`.
  • PointPrint `"Double 21: $(double_val(21))"`.
1
2
3
4
5
6
7
Sandbox Output
Click "Run & Check" to test your solution.

Finished reading and practicing?

Mark this lesson as completed to update your course progress.

PreviousNext Lesson
Overview100 SheetLearnCertificates