2013-10-25 44 views
2

下面是我嘗試過的一個例子。比較字符串與靜態字符串

static TARGET: &'static str = "a string"; 

fn main() { 
    printfln!("%?", TARGET.eq(~"other string")); 
} 

我也看着equiv,但沒有運氣。我與TARGET比較的字符串必須是擁有的指針字符串。

+1

所有FMT!相關的宏改變了BTW。您的代碼將與下一次更新中斷。看看這裏:http://static.rust-lang.org/doc/master/std/fmt/index.html –

回答

3

這個作品在這裏:

static TARGET: &'static str = "a string"; 

fn main() { 

    println!("{}", TARGET == "a string"); 
    println!("{}", TARGET == ~"a string"); 

    let other = ~"a string"; 
    println!("{}", TARGET == other); 

} 

它打印:

true 
true 
true 
+0

對不起,我沒有說清楚,字符串必須是一個指針。編輯了這個問題。 –

+0

@ErikKronberg如果'TARGET ==〜「foo」'在你嘗試時不起作用,你應該說出你得到的錯誤信息。 (如果它不起作用,你可以嘗試通過'foo.as_slice()'強制它成爲'&str',其中'foo'的類型是'〜str'。 – huon

+0

你是對的,當我能夠檢查它,我沒有錯誤信息。我一定把它和別的東西混在一起了! –