第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在RUST中打印變量的類型?

如何在RUST中打印變量的類型?

我有以下情況:let mut my_number = 32.90;如何打印my_number?使用type和type_of不起作用。還有別的方法可以打印號(hào)碼的字體嗎?
查看完整描述

4 回答

?
精慕HU

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊

如果你只是想找出變量的類型,并且愿意在編譯時(shí)這樣做,您可以導(dǎo)致一個(gè)錯(cuò)誤并讓編譯器來獲取它。

例如,將變量設(shè)置為無法工作的類型 (let () = x;):

error[E0308]: mismatched types
 --> <anon>:2:29
  |
2 |     let mut my_number: () = 32.90;
  |                             ^^^^^ expected (), found floating-point variable
  |
  = note: expected type `()`
  = note:    found type `{float}`

error: aborting due to previous error

或者在大多數(shù)情況下調(diào)用無效方法獲取無效字段:

error: no method named `what_is_this` found for type `{float}` in the current scope
 --> <anon>:3:15
  |
3 |     my_number.what_is_this();
  |               ^^^^^^^^^^^^

error: aborting due to previous error
error: attempted access of field `what_is_this` on type `{float}`, but no field with that name was found
 --> <anon>:3:5
  |
3 |     my_number.what_is_this
  |     ^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to previous error

這些都揭示了類型,在這種情況下,這種類型實(shí)際上還沒有完全解決。在第一個(gè)例子中,它被稱為“浮點(diǎn)變量”,并且{float}“在所有三個(gè)示例中,這是一個(gè)部分解析的類型,可能會(huì)以f32f64,取決于你如何使用它?!?/trans>{float}不是合法的類型名稱,它是一個(gè)占位符,意思是“我不完全確定這是什么”,但它浮點(diǎn)數(shù)。在浮點(diǎn)變量的情況下,如果不對(duì)其進(jìn)行約束,它將默認(rèn)為f641,1。(非限定整數(shù)文字默認(rèn)為i32.)


可能仍有一些方法使編譯器感到困惑,使編譯器無法在兩者之間作出決定。f32f64我不確定。它過去很簡單32.90.eq(&32.90),但這兩者都被視為f64現(xiàn)在快樂地向前走,所以我不知道。




查看完整回答
反對(duì) 回復(fù) 2019-08-05
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

有一個(gè)不穩(wěn)定的函數(shù)std::intrinsics::type_name這可以為您提供一個(gè)類型的名稱,盡管您必須使用一個(gè)夜間構(gòu)建的RUST(這不太可能在穩(wěn)定銹蝕中起作用)。下面是一個(gè)例子:

#![feature(core_intrinsics)]fn print_type_of<T>(_: &T) {
    println!("{}", unsafe { std::intrinsics::type_name::<T>() });}fn main() {
    print_type_of(&32.90);          // prints "f64"
    print_type_of(&vec![1, 2, 4]);  // prints "std::vec::Vec<i32>"
    print_type_of(&"foo");          // prints "&str"}




查看完整回答
反對(duì) 回復(fù) 2019-08-05
?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

UPD以下內(nèi)容不再有效。查帳舒布姆的回答為了改正。

檢查std::intrinsics::get_tydesc<T>()..它現(xiàn)在處于“試驗(yàn)性”狀態(tài),但如果你只是對(duì)類型系統(tǒng)進(jìn)行黑客攻擊,那就沒問題了。

請(qǐng)查看以下示例:

fn print_type_of<T>(_: &T) -> () {
    let type_name =
        unsafe {
            (*std::intrinsics::get_tydesc::<T>()).name        };
    println!("{}", type_name);}fn main() -> () {
    let mut my_number = 32.90;
    print_type_of(&my_number);       // prints "f64"
    print_type_of(&(vec!(1, 2, 4))); // prints "collections::vec::Vec<int>"}

這就是內(nèi)部使用實(shí)施著名的{:?}格式化程序。



查看完整回答
反對(duì) 回復(fù) 2019-08-05
  • 4 回答
  • 0 關(guān)注
  • 1576 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)