Запитання з тегом «rust»

Іржа - це система програмування без сміттєзбірника, орієнтована на три цілі: безпеку, швидкість та сумісність. Використовуйте цей тег для запитань про код, написаний на "Іржа". Використовуйте тег для видання для запитань, що стосуються коду, який вимагає певного видання, наприклад [rust-2018]. Використовуйте більш конкретні теги для підтемати, наприклад [іржа-вантаж] та [іржа-макрос].


1
Чому компілятор Rust не оптимізує код, припускаючи, що два змінні посилання не можуть мати псевдонім?
Наскільки я знаю, псевдонім посилання / вказівника може перешкоджати можливості компілятора генерувати оптимізований код, оскільки вони повинні забезпечувати, щоб згенерований бінарний файл поводився правильно у випадку, коли два посилання / покажчики справді псевдоніми. Наприклад, у наведеному нижче коді С void adds(int *a, int *b) { *a += *b; *a += …

4
Чому не println! робота в тестах Rust Unit?
Я реалізував наступний метод та одиничний тест: use std::fs::File; use std::path::Path; use std::io::prelude::*; fn read_file(path: &Path) { let mut file = File::open(path).unwrap(); let mut contents = String::new(); file.read_to_string(&mut contents).unwrap(); println!("{}", contents); } #[test] fn test_read_file() { let path = &Path::new("/etc/hosts"); println!("{:?}", path); read_file(path); } Я запускаю тестовий апарат таким чином: …
285 rust  println 


2
Чому під час циклічного перегляду масиву з 240 і більше елементами великий вплив на продуктивність?
Під час запуску циклу суми над масивом в Rust, я помітив величезний спад продуктивності, коли CAPACITY> = 240. CAPACITY= 239 приблизно в 80 разів швидше. Чи є спеціальна оптимізація компіляції, яку Rust робить для "коротких" масивів? Укладено з rustc -C opt-level=3. use std::time::Instant; const CAPACITY: usize = 240; const IN_LOOPS: …

4
Як відключити невикористані попередження коду в Rust?
struct SemanticDirection; fn main() {} warning: struct is never used: `SemanticDirection` --> src/main.rs:1:1 | 1 | struct SemanticDirection; | ^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: #[warn(dead_code)] on by default Я поверну ці попередження для будь-якого серйозного, але я просто розмовляю з мовою, і це веде до мене кажанів. Я спробував додати #[allow(dead_code)]свій …

2
Чому я не можу зберігати значення та посилання на це значення в одній структурі?
У мене є значення, і я хочу зберігати це значення та посилання на щось усередині цього значення у власному типі: struct Thing { count: u32, } struct Combined<'a>(Thing, &'a u32); fn make_combined<'a>() -> Combined<'a> { let thing = Thing { count: 42 }; Combined(thing, &thing.count) } Іноді у мене є …

5
Як зіставити рядок з рядковими літералами в Rust?
Я намагаюся розібратися, як поєднатись з Stringіржею. Спочатку я намагався відповідати подібним чином, але зрозумів, що Руст не може неявно std::string::Stringперейти з &str. fn main() { let stringthing = String::from("c"); match stringthing { "a" => println!("0"), "b" => println!("1"), "c" => println!("2"), } } У цьому помилка: error[E0308]: mismatched types …
205 string  match  rust 



4
Пакет іржі як з бібліотекою, так і з бінарним файлом?
Я хотів би зробити пакет Rust, який містить бібліотеку для багаторазового використання (де реалізована більшість програми), а також виконуваний файл, який його використовує. Якщо припустити, що я не переплутав жодної семантики в системі модуля Rust, як повинен Cargo.tomlвиглядати мій файл?
190 rust  rust-cargo 

7
Перетворити рядок в int в Rust?
Примітка: це питання містить застарілий код попереднього 1,0! Однак відповідь правильна. Щоб перетворити strв intв Руста, я можу це зробити: let my_int = from_str::<int>(my_str); Єдиний спосіб, коли я знаю, як перетворити Stringна, - intце отримати його фрагмент, а потім використовувати from_strйого так: let my_int = from_str::<int>(my_string.as_slice()); Чи є спосіб безпосередньо …
187 rust 

2
Які точні правила автоматичного перенаправлення Руста?
Я вчусь / експериментую з Рустом, і в тій елегантності, яку я знаходжу в цій мові, є одна особливість, яка мене бентежить і здається абсолютно не на місці. Іржа автоматично вказує на перенаправлення під час здійснення викликів методів. Я зробив кілька тестів, щоб визначити точну поведінку: struct X { val: …

4
Яка різниця між iter та into_iter?
Я роблю підручник " Іржа за прикладом", який містить цей фрагмент коду: // Vec example let vec1 = vec![1, 2, 3]; let vec2 = vec![4, 5, 6]; // `iter()` for vecs yields `&i32`. Destructure to `i32`. println!("2 in vec1: {}", vec1.iter() .any(|&x| x == 2)); // `into_iter()` for vecs yields …
175 rust 


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.