W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在 Rust 語(yǔ)言中,聲明可以用 ‘a(chǎn)ttributes’ 來(lái)注釋。它們看起來(lái)像下面這樣:
#[test]
或者是像這樣:
#![test]
兩者的區(qū)別是!,!改變了屬性所能夠適用的事物:
#[foo]
struct Foo;
mod bar {
#![bar]
}
#(foo)
屬性應(yīng)用到下一個(gè)項(xiàng)目,而這個(gè)項(xiàng)目就是結(jié)構(gòu)體聲明。 #![bar] 屬性適用于包含它的項(xiàng)目,這種屬性是一個(gè) mod 聲明。否則,它們是相同的。這樣都在某種程度上改變項(xiàng)了目的意義。
例如,考慮這樣一個(gè)函數(shù):
#[test]
fn check() {
assert_eq!(2, 1 + 1);
}
這是用 #[test] 來(lái)標(biāo)志的。這意味著它是特殊的:當(dāng)您運(yùn)行測(cè)試時(shí),該函數(shù)將執(zhí)行。當(dāng)你和往常一樣編譯時(shí), #[test] 甚至不會(huì)被包括在編譯的范圍之內(nèi)。這個(gè)函數(shù)是現(xiàn)在一個(gè)測(cè)試函數(shù)。
屬性也可能含有額外的數(shù)據(jù):
#[inline(always)]
fn super_fast_fn() {
或者甚至是關(guān)鍵字和值:
#[cfg(target_os = "macos")]
mod macos_only {
Rust 屬性被用于許多不同的事情。這有一個(gè)屬性的完整引用列表。目前,不允許用戶創(chuàng)建自己的屬性,只能由 Rust 編譯器來(lái)定義它們。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: