#[cfg(bar)] :這個是條件編譯的方式。閉包
在rust裏面你想查看某個變量的值,但你不知道他是什麼屬性或者包含哪些屬性。函數
能夠在你定義的struts上加上這行的註解。this
#[derive(Debug)],而後經過println!("{:?}",你定義struts的變量名);進行輸出。code
若是是引入的模塊crate定義的struts,就在extern crate 上一行加這個註釋。生命週期
if it is defined in your crate, add `#[derive(Debug)]` or manually implement it
match value {編譯器
ref val => println!("this is a ref value");
it
}編譯
val 是value所產生出來的ref值。class
rust閉包問題變量
若是閉包使用了外部變量a,至關於borrow了外部變量,並會一直持有該borrow直到該閉包的生命週期結束爲止。ps:若是持有的mut borrow外部變量,意味着在該閉包生命週期的時間裏,其餘地方不能borrow a變量了。
若是閉包有mut 變量的話,那麼閉包也必定是用mut修飾符。
1 基本解釋:extern能夠置於變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其餘模塊中尋找其定義。