Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn function() {
- println!("called `function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `cool::function()`");
- }
- }
- mod my {
- fn function() {
- println!("called `my::function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `my::cool::function()`");
- }
- }
- pub fn indirect_call() {
- // 让我们从这个作用域中访问所有名为 `function` 的函数!
- print!("called `my::indirect_call()`, that\n> ");
- // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
- // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
- // 因为他们表示相同的函数。
- self::function();
- function();
- // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
- self::cool::function();
- // `super` 关键字表示父作用域(在 `my` 模块外面)。
- super::function();
- // 这将在 *crate* 作用域内绑定 `cool::function` 。
- // 在这个例子中,crate 作用域是最外面的作用域。
- {
- use cool::function as root_function;
- root_function();fn function() {
- println!("called `function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `cool::function()`");
- }
- }
- mod my {
- fn function() {
- println!("called `my::function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `my::cool::function()`");
- }
- }
- pub fn indirect_call() {
- // 让我们从这个作用域中访问所有名为 `function` 的函数!
- print!("called `my::indirect_call()`, that\n> ");
- // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
- // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
- // 因为他们表示相同的函数。
- self::function();
- function();
- // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
- self::cool::function();
- // `super` 关键字表示父作用域(在 `my` 模块外面)。
- super::function();
- // 这将在 *crate* 作用域内绑定 `cool::function` 。
- // 在这个例子中,crate 作用域是最外面的作用域。
- {
- use cool::function as root_function;
- root_function();
- }
- }
- }
- fn main() {
- my::indirect_call();
- }
- fn function() {
- println!("called `function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `cool::function()`");
- }
- }
- mod my {
- fn function() {
- println!("called `my::function()`");
- }
- mod cool {
- pub fn function() {
- println!("called `my::cool::function()`");
- }
- }
- pub fn indirect_call() {
- // 让我们从这个作用域中访问所有名为 `function` 的函数!
- print!("called `my::indirect_call()`, that\n> ");
- // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
- // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
- // 因为他们表示相同的函数。
- self::function();
- function();
- // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
- self::cool::function();
- // `super` 关键字表示父作用域(在 `my` 模块外面)。
- super::function();
- // 这将在 *crate* 作用域内绑定 `cool::function` 。
- // 在这个例子中,crate 作用域是最外面的作用域。
- {
- use cool::function as root_function;
- root_function();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement