rust

    7熱度

    2回答

    爲什麼這個指針算術(沒有在這些指針後面讀寫數據)導致段錯誤? #![allow(dead_code,unused_variables)] use std::cell::Cell; struct Bar<T: ?Sized> { a: Cell<usize>, value: T, } unsafe fn foo<T: ?Sized>(v: &T) { let

    2熱度

    1回答

    我是Rust的新手,我正在嘗試編寫簡單的按位替換器。 我有代碼: const TABLE: [u64; 8] = [ 0xC462A5B9E8D703F1, 0x68239A5C1E47BD0F, 0xB3582FADE174C960, 0xC821D4F670A53E9B, 0x7F5A816D093EB42C, 0x5DF692CAB

    1熱度

    1回答

    全部鏽例如這裏: https://play.rust-lang.org/?gist=0778e8d120dd5e5aa7019bc097be392b&version=stable 總的想法是爲執行一個通用的迭代分割,將產生迭代器對於由指定的分隔分裂值的每次運行。因此,對於[1, 2, 3, 0, 4, 5, 6, 0, 7, 8, 9],split(0)你會得到[[1, 2, 3], [4, 5,

    3熱度

    1回答

    最近我得到了一個相當強壯的規格的新智能手機,所以想隨時隨地玩Rust,我安裝了Termux並嘗試了rustup-init。然而,這種失敗: info: syncing channel updates for 'stable-aarch64-linux-android' info: latest update on 2017-08-31, rust version 1.20.0 (f3d6973f4

    1熱度

    1回答

    我正在Rust中編寫一個操作系統,需要直接調用我計算的虛擬地址(類型爲u32)。我認爲這是相對簡單的: let code = virtual_address as (extern "C" fn()); (code)(); 但是,這抱怨演員是非原始的。這表明我使用了From特質,但我不明白這可能會有什麼幫助(雖然我對Rust比較新,所以可能會漏掉一些東西)。 error[E0605]: non

    4熱度

    1回答

    在鏽,看來你基本上可以放在任何東西。性狀,實現塊,函數,靜態變量... 例如,這個編譯: fn main() { trait Foo { fn foo(); } impl Foo for f64 { fn foo() {} } struct MyStruct; enum RustIsCool {

    0熱度

    1回答

    我最近遇到了Rust,發現可以很容易地在Rust中編寫系統代碼而不需要接觸組件。 我只想做一個可啓動的Hello World程序出我hello.rs代碼: fn main() { println!("Hello World"); } 有沒有辦法讓這個鏽代碼啓動?

    0熱度

    1回答

    我有這樣的代碼: struct Foo<'a> { link: &'a i32, } fn main() { let mut x = 33; println!("x:{}", x); let ff = Foo { link: &x }; x = 22; } 生成此編譯器錯誤: error[E0506]: cannot assign to

    0熱度

    1回答

    我有困難的轉換這斯卡拉特質生鏽 trait Inject[A, B] { self => def inject(input: A): B def project(input: B): Try[A] def contraMap[AA](inj: Inject[AA, A]): Inject[AA, B] = new Inject[AA, B] {

    3熱度

    1回答

    您可以實現Copy特徵以賦予複製語義類型而不是移動語義。這隻能在所有組成元素(產品類型的每個因子或每個總和類型變體的每個因子)都是Copy時才能完成。 這可以讓你也做出相當大的類型Copy。如果該類型的大小「很大」,可以執行Copy是否會對性能造成不利影響? 如果Copy應始終執行,爲何不能自動特質像Sync和Send對於那些能夠實現它,並有退出的語義,而不是選擇在類型?