Namespaces
- C
- C++
- C#
- Java
- Rust
- Go
- Javascript
- Typescript
- Python
// Not Available
// You can work around with structs
// Check More Info
More Info:
namespace myNamespace
{
float myFunction()
{
// ...
}
class MyClass
{
// ...
};
// ...
}
// Calling from namespace Ex.:
// We use :: as a separator
myNamespace::myFunction();
myNamespace::MyClass();
// Nested namespaces
// Example 1 - Since C++17
namespace myFirstNamespace::mySecondNamespace
{
float myFunction()
{
// ...
}
class MyClass
{
// ...
};
// ...
}
// Example 2 - Prior to C++17
namespace myFirstNamespace
{
namespace mySecondNamespace
{
float myFunction()
{
// ...
}
class MyClass
{
// ...
};
}
// ...
}
// Calling from namespace Ex.:
// We use :: as a separator
myFirstNamespace::mySecondNamespace::myFunction();
myFirstNamespace::mySecondNamespace::MyClass();
More Info:
namespace MyNamespace
{
class MyClass
{
// ...
};
// ...
}
// Calling from namespace Ex.:
// We use . as a separator
MyNamespace.MyClass();
// Nested namespaces
// Example 1
namespace MyFirstNamespace.MySecondNamespace
{
class MyClass
{
// ...
}
// ...
}
// Example 2
namespace MyFirstNamespace
{
namespace MySecondNamespace
{
class MyClass
{
// ...
}
// ...
}
// ...
}
// Calling from namespace Ex.:
// We use . as a separator
MyFirstNamespace.MySecondNamespace.MyClass();
More Info:
// Also Known as "Packages" and MUST reflect directory architecture
// Name of the package must be same as the directory
// under which this file is saved
package myPackage;
public class MyClass
{
// ...
}
// ...
// Calling from package Ex.:
// We use . as a separator
myPackage.MyClass();
// Its also posible to import the specific member
import myPackage.MyClass;
MyClass(); // With the import, you dont need the full identifier
// Also Known as "Packages" and MUST reflect directory architecture
// Nested Packages
// package cannot be "nested".
// But you can have a sub package architecture
package myPackage.mySubPackage;
public class MyClass
{
// ...
}
// ...
// Calling from package Ex.:
// We use . as a separator
myPackage.mySubPackage.MyClass();
// Its also posible to import the specific member
import myPackage.mySubPackage.MyClass;
MyClass(); // With the import, you dont need the full identifier
More Info:
mod my_module {
pub fn public_function() {
// ...
}
fn private_function() {
// ...
}
}
my_module::public_function();
// Go uses packages instead of namespaces.
package mypackage
// Exported names start with an upper-case letter.
func PublicFunction() {
// ...
}
func privateFunction() {
// ...
}
// JavaScript does not provide namespace by default.
// But there some workarounds
const MyNamespace = {
value: 10,
myFunction() {
// ...
},
};
MyNamespace.myFunction();
More Info:
namespace MyNamespace
{
// Add "export" to be visible outside the namespace
// Defaults to not be visible outside the namespace.
export class MyClass
{
// ...
}
// ...
}
// Calling from namespace Ex.:
// We use . as a separator
MyNamespace.MyClass();
// Nested namespaces
namespace MyFirstNamespace
{
export namespace MySecondNamespace // The nested namespace need to be exported (if you want it public)
{
export class MyClass
{
// ...
}
// ...
}
// ...
}
// Calling from namespace Ex.:
// We use . as a separator
MyFirstNamespace.MySecondNamespace.MyClass();
More Info:
# Python uses modules and packages as namespaces.
# my_module.py
def my_function():
pass
# main.py
import my_module
my_module.my_function()
# Classes can also group related names.
class MyNamespace:
value = 10
@staticmethod
def my_function():
pass
More Info: