Вопросы с тегом «rust»

Rust - это язык системного программирования без сборщика мусора, ориентированный на три цели: безопасность, скорость и параллелизм. Используйте этот тег для вопросов о коде, написанном на Rust. Используйте специальный тег для вопросов, относящихся к коду, для которого требуется конкретное издание, например [rust-2018]. Используйте более конкретные теги для таких подтем, как [rust-cargo] и [rust-macros].


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

4
Почему не печатает! работать в Rust юнит-тестах?
Я реализовал следующий метод и модульный тест: 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); } Я запускаю модульное тестирование следующим образом: …
286 rust  println 

10
Как напечатать тип переменной в Rust?
У меня есть следующее: let mut my_number = 32.90; Как мне распечатать тип my_number? Использование typeи type_ofне работает. Есть ли другой способ, которым я могу напечатать тип номера?
240 types  rust 

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: usize …

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 Я включу эти предупреждения снова для чего-нибудь серьезного, но я просто возиться с языком, и это сводит меня с ума. Я попытался добавить …

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в Rust. Первоначально я пытался подобрать, как это, но я понял, что Rust не может неявно приводиться 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 …
207 string  match  rust 



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

7
Преобразовать строку в int в Rust?
Примечание: этот вопрос содержит устаревший код до 1.0! Ответ правильный, хотя. Чтобы преобразовать strв intв Русте, я могу это сделать: let my_int = from_str::<int>(my_str); Единственный способ, которым я знаю, как преобразовать a Stringв a, intсостоит в том, чтобы получить его часть, а затем использовать from_strего следующим образом: let my_int = …
187 rust 

2
Каковы точные правила автоматической разыменования в Rust?
Я изучаю / экспериментирую с Rust, и при всей элегантности, которую я нахожу в этом языке, есть одна особенность, которая сбивает меня с толку и кажется совершенно неуместной. Rust автоматически разыменовывает указатели при вызове метода. Я сделал несколько тестов, чтобы определить точное поведение: struct X { val: i32 } impl …

4
В чем разница между iter и into_iter?
Я делаю учебник Rust by Example, который имеет этот фрагмент кода: // 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 `i32`. …
176 rust 


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.