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
Was ist ein „fetter Zeiger“ in Rust?
Ich habe den Begriff "Fettzeiger" bereits in mehreren Zusammenhängen gelesen, bin mir aber nicht sicher, was er genau bedeutet und wann er in Rust verwendet wird. Der Zeiger scheint doppelt so groß zu sein wie ein normaler Zeiger, aber ich verstehe nicht warum. Es scheint auch etwas mit Merkmalsobjekten zu …
91 pointers  rust 

1
Wie konvertiere ich von einer Ganzzahl in eine Zeichenfolge?
Ich kann keinen Code kompilieren, der einen Typ von einer Ganzzahl in eine Zeichenfolge konvertiert. Ich führe ein Beispiel aus dem Tutorial von Rust for Rubyists aus, das verschiedene Typkonvertierungen enthält, wie z. "Fizz".to_str()und num.to_str()(wo numist eine ganze Zahl). Ich denke, die Mehrheit (wenn nicht alle) dieser to_str()Funktionsaufrufe sind veraltet. …

1
Idiomatische Rückrufe in Rust
In C / C ++ würde ich normalerweise Rückrufe mit einem einfachen Funktionszeiger ausführen und möglicherweise auch einen void* userdataParameter übergeben. Etwas wie das: typedef void (*Callback)(); class Processor { public: void setCallback(Callback c) { mCallback = c; } void processEvents() { for (...) { ... mCallback(); } } private: …
90 callback  rust 

9
Warum eine Sprache mit eindeutigen anonymen Typen entwerfen?
Dies ist etwas, das mich als Merkmal von C ++ - Lambda-Ausdrücken immer nervt: Der Typ eines C ++ - Lambda-Ausdrucks ist einzigartig und anonym, ich kann ihn einfach nicht aufschreiben. Selbst wenn ich zwei Lambdas erstelle, die syntaktisch genau gleich sind, werden die resultierenden Typen als unterschiedlich definiert. Die …




1
Was sind nicht-lexikalische Lebensdauern?
Rust hat eine RFC zu nicht-lexikalisches Leben bezogen , die genehmigt wurde in der Sprache für eine lange Zeit umgesetzt werden. In letzter Zeit hat sich die Unterstützung dieser Funktion durch Rust erheblich verbessert und gilt als vollständig. Meine Frage ist: Was genau ist ein nicht lexikalisches Leben?

1
Welche Rosttypen werden mit einem einzelnen Apostroph bezeichnet?
Ich habe in Rust eine Reihe von Typen gefunden, die mit einem einzigen Apostroph gekennzeichnet sind: 'static 'r 'a Welche Bedeutung hat dieser Apostroph? Vielleicht ist es ein Modifikator von Referenzen ( &)? Generische typspezifische Eingabe? Ich habe keine Ahnung, wo sich die Dokumentation dafür versteckt.
85 rust 



1
Was ist der Overhead des Optionstyps von Rust?
In Rust können Referenzen niemals null sein. Wenn Sie also tatsächlich null benötigen, z. B. eine verknüpfte Liste, verwenden Sie den OptionTyp: struct Element { value: i32, next: Option<Box<Element>>, } Wie viel Overhead ist damit in Bezug auf die Speicherzuweisung und die Schritte zur Dereferenzierung im Vergleich zu einem einfachen …

2
Wie übergibt man eine Rust-Funktion als Parameter?
Kann ich eine Funktion als Parameter übergeben? Wenn nicht, was ist eine gute Alternative? Ich habe verschiedene Syntaxen ausprobiert, aber nicht die richtige gefunden. Ich weiß ich kann das: fn example() { let fun: fn(value: i32) -> i32; fun = fun_test; fun(5i32); } fn fun_test(value: i32) -> i32 { println!("{}", …
81 rust 


5
Konvertieren von Option <String> in Option <& str>
Sehr oft habe ich eine Option&lt;String&gt;aus einer Berechnung erhalten und möchte entweder diesen Wert oder einen fest codierten Standardwert verwenden. Dies wäre mit einer ganzen Zahl trivial: let opt: Option&lt;i32&gt; = Some(3); let value = opt.unwrap_or(0); // 0 being the default Aber mit a Stringund a &amp;strbeschwert sich der Compiler …
80 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.