2015-12-04 27 views
1

我試過用Rust的LAPACK綁定,當我找到一些我找不到的語法時。函數參數旁邊的兩個單引號括起來的字母是什麼意思?

https://github.com/stainless-steel/lapack的示例代碼:

let n = 3; 

let mut a = vec![3.0, 1.0, 1.0, 1.0, 3.0, 1.0, 1.0, 1.0, 3.0]; 
let mut w = vec![0.0; n]; 
let mut work = vec![0.0; 4 * n]; 
let lwork = 4 * n as isize; 
let mut info = 0; 

lapack::dsyev(b'V', b'U', n, &mut a, n, &mut w, &mut work, lwork, &mut info); 

for (one, another) in w.iter().zip(&[2.0, 2.0, 5.0]) { 
    assert!((one - another).abs() < 1e-14); 
} 

是什麼b'V 'b'U'是什麼意思?

回答

4

b'A'裝置創建字節字面。具體地講,它是一個包含字符的ASCII值u8

fn main() { 
    let what = b'a'; 
    println!("{}", what); 
    // let() = what; 
} 

的註釋行顯示瞭如何找到的類型。

b"hello"是類似的,但產生對的u8數組的引用,一個字節串

fn main() { 
    let what = b"hello"; 
    println!("{:?}", what); 
    // let() = what; 
} 

像這樣的事情在Syntax Index這是目前僅在的夜間版本都記錄文檔。

4

它使用引號之間的char值的ASCII值創建u8值。

對於ASCII文字,與編寫'V' as u8相同。

此外,雙引號字符串上的b前綴將創建一個包含該字符串的UTF8內容的字節數組。

let s: &[u8; 11] = b"Hello world"; 
相關問題