SHARE
TWEET

Untitled

a guest Jul 12th, 2019 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. fn function() {
  2.     println!("called `function()`");
  3. }
  4.  
  5. mod cool {
  6.     pub fn function() {
  7.         println!("called `cool::function()`");
  8.     }
  9. }
  10.  
  11. mod my {
  12.     fn function() {
  13.         println!("called `my::function()`");
  14.     }
  15.    
  16.     mod cool {
  17.         pub fn function() {
  18.             println!("called `my::cool::function()`");
  19.         }
  20.     }
  21.    
  22.     pub fn indirect_call() {
  23.         // 让我们从这个作用域中访问所有名为 `function` 的函数!
  24.         print!("called `my::indirect_call()`, that\n> ");
  25.        
  26.         // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
  27.         // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
  28.         // 因为他们表示相同的函数。
  29.         self::function();
  30.         function();
  31.        
  32.         // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
  33.         self::cool::function();
  34.        
  35.         // `super` 关键字表示父作用域(在 `my` 模块外面)。
  36.         super::function();
  37.        
  38.         // 这将在 *crate* 作用域内绑定 `cool::function` 。
  39.         // 在这个例子中,crate 作用域是最外面的作用域。
  40.         {
  41.             use cool::function as root_function;
  42.             root_function();fn function() {
  43.     println!("called `function()`");
  44. }
  45.  
  46. mod cool {
  47.     pub fn function() {
  48.         println!("called `cool::function()`");
  49.     }
  50. }
  51.  
  52. mod my {
  53.     fn function() {
  54.         println!("called `my::function()`");
  55.     }
  56.    
  57.     mod cool {
  58.         pub fn function() {
  59.             println!("called `my::cool::function()`");
  60.         }
  61.     }
  62.    
  63.     pub fn indirect_call() {
  64.         // 让我们从这个作用域中访问所有名为 `function` 的函数!
  65.         print!("called `my::indirect_call()`, that\n> ");
  66.        
  67.         // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
  68.         // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
  69.         // 因为他们表示相同的函数。
  70.         self::function();
  71.         function();
  72.        
  73.         // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
  74.         self::cool::function();
  75.        
  76.         // `super` 关键字表示父作用域(在 `my` 模块外面)。
  77.         super::function();
  78.        
  79.         // 这将在 *crate* 作用域内绑定 `cool::function` 。
  80.         // 在这个例子中,crate 作用域是最外面的作用域。
  81.         {
  82.             use cool::function as root_function;
  83.             root_function();
  84.         }
  85.     }
  86. }
  87.  
  88. fn main() {
  89.     my::indirect_call();
  90. }
  91. fn function() {
  92.     println!("called `function()`");
  93. }
  94.  
  95. mod cool {
  96.     pub fn function() {
  97.         println!("called `cool::function()`");
  98.     }
  99. }
  100.  
  101. mod my {
  102.     fn function() {
  103.         println!("called `my::function()`");
  104.     }
  105.    
  106.     mod cool {
  107.         pub fn function() {
  108.             println!("called `my::cool::function()`");
  109.         }
  110.     }
  111.    
  112.     pub fn indirect_call() {
  113.         // 让我们从这个作用域中访问所有名为 `function` 的函数!
  114.         print!("called `my::indirect_call()`, that\n> ");
  115.        
  116.         // `self` 关键字表示当前的模块作用域——在这个例子是 `my`。
  117.         // 调用 `self::function()` 和直接调用 `function()` 都得到相同的结果,
  118.         // 因为他们表示相同的函数。
  119.         self::function();
  120.         function();
  121.        
  122.         // 我们也可以使用 `self` 来访问 `my` 内部的另一个模块:
  123.         self::cool::function();
  124.        
  125.         // `super` 关键字表示父作用域(在 `my` 模块外面)。
  126.         super::function();
  127.        
  128.         // 这将在 *crate* 作用域内绑定 `cool::function` 。
  129.         // 在这个例子中,crate 作用域是最外面的作用域。
  130.         {
  131.             use cool::function as root_function;
  132.             root_function();
  133.         }
  134.     }
  135. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top