Als «rust» getaggte Fragen

Rust ist eine Systemprogrammiersprache ohne Garbage Collector, die sich auf drei Ziele konzentriert: Sicherheit, Geschwindigkeit und Parallelität. Verwenden Sie dieses Tag für Fragen zu in Rust geschriebenem Code. Verwenden Sie ein editionsspezifisches Tag für Fragen, die sich auf Code beziehen, für den eine bestimmte Edition erforderlich ist, z. B. [rust-2018]. Verwenden Sie spezifischere Tags für Unterthemen wie [Rostfracht] und [Rostmakros].


1
Warum optimiert der Rust-Compiler den Code nicht unter der Annahme, dass zwei veränderbare Referenzen keinen Alias ​​haben können?
Soweit ich weiß, kann Referenz- / Zeiger-Aliasing die Fähigkeit des Compilers beeinträchtigen, optimierten Code zu generieren, da sie sicherstellen müssen, dass sich die generierte Binärdatei korrekt verhält, wenn die beiden Referenzen / Zeiger tatsächlich Alias ​​sind. Zum Beispiel im folgenden C-Code: void adds(int *a, int *b) { *a += *b; …

4
Warum nicht drucken! in Rust Unit Tests arbeiten?
Ich habe die folgende Methode und den folgenden Komponententest implementiert: 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); } Ich führe den …
284 rust  println 


2
Warum gibt es große Auswirkungen auf die Leistung, wenn ein Array mit 240 oder mehr Elementen durchlaufen wird?
Beim Ausführen einer Summenschleife über ein Array in Rust habe ich einen enormen Leistungsabfall festgestellt, wenn CAPACITY> = 240. CAPACITY= 239 etwa 80-mal schneller ist. Gibt es eine spezielle Kompilierungsoptimierung, die Rust für "kurze" Arrays durchführt? Zusammengestellt mit rustc -C opt-level=3. use std::time::Instant; const CAPACITY: usize = 240; const IN_LOOPS: …




5
Wie kann man einen String mit String-Literalen in Rust abgleichen?
Ich versuche herauszufinden, wie man einen Stringin Rust zusammenbringt. Ich habe anfangs versucht, so zu passen, aber ich habe herausgefunden, dass Rust nicht implizit von std::string::Stringbis werfen kann &str. fn main() { let stringthing = String::from("c"); match stringthing { "a" => println!("0"), "b" => println!("1"), "c" => println!("2"), } } …
199 string  match  rust 


4
Rust-Paket mit einer Bibliothek und einer Binärdatei?
Ich möchte ein Rust-Paket erstellen, das sowohl eine wiederverwendbare Bibliothek (in der der größte Teil des Programms implementiert ist) als auch eine ausführbare Datei enthält, die es verwendet. Angenommen, ich habe keine Semantik im Rust-Modulsystem verwechselt. Wie sollte meine Cargo.tomlDatei aussehen?
190 rust  rust-cargo 


7
In Rust einen String in int konvertieren?
Hinweis: Diese Frage enthält veralteten Code vor 1.0! Die Antwort ist jedoch richtig. Um ein strin ein intin Rust umzuwandeln , kann ich Folgendes tun: let my_int = from_str::<int>(my_str); Der einzige Weg, wie ich a Stringin ein konvertieren kann , intbesteht darin, ein Stück davon zu bekommen und es dann …
180 rust 

4
Was ist der Unterschied zwischen iter und into_iter?
Ich mache das Rust by Example- Tutorial mit diesem Code-Snippet: // 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`. No …
173 rust 


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.