Pytania otagowane jako rust

Rust to język programowania systemów bez garbage collectora, który koncentruje się na trzech celach: bezpieczeństwie, szybkości i współbieżności. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w Rust. W przypadku pytań odnoszących się do kodu wymagającego określonej edycji, np. [Rust-2018], użyj tagu specyficznego dla wydania. Użyj bardziej szczegółowych tagów dla tematów podrzędnych, takich jak [ładunek rdzy] i [makra rdzy].

3
Co ma Rust zamiast garbage collectora?
Rozumiem, że Rust nie ma odśmiecacza pamięci i zastanawiam się, jak zwalnia się pamięć, gdy powiązanie wykracza poza zakres. W tym przykładzie rozumiem, że Rust odzyskuje pamięć przydzieloną do „a”, gdy wychodzi ona poza zakres. { let a = 4 } Problem, który mam z tym, polega po pierwsze na …
95 rust 


4
Jak używać makra w plikach modułów?
Mam dwa moduły w osobnych plikach w tej samej skrzynce, w której skrzynia została macro_ruleswłączona. Chcę użyć makr zdefiniowanych w jednym module w innym module. // macros.rs #[macro_export] // or not? is ineffectual for this, afaik macro_rules! my_macro(...) // something.rs use macros; // use macros::my_macro; <-- unresolved import (for obvious …

1
Co to jest „gruby wskaźnik” w Rust?
Czytałem już termin „gruby wskaźnik” w kilku kontekstach, ale nie jestem pewien, co dokładnie oznacza i kiedy jest używany w Rust. Wskaźnik wydaje się być dwa razy większy niż normalny wskaźnik, ale nie rozumiem dlaczego. Wydaje się również, że ma to coś wspólnego z obiektami cech.
91 pointers  rust 

2
Jaka jest różnica między use i extern?
Jestem nowy w Rust. Myślę, że usesłuży do importowania identyfikatorów do bieżącego zakresu i externsłuży do deklarowania modułu zewnętrznego. Ale to zrozumienie (może błędne) nie ma dla mnie żadnego sensu. Czy ktoś może wyjaśnić, dlaczego Rust ma te dwie koncepcje i jakie są odpowiednie przypadki ich użycia?
91 rust 

9
Po co projektować język z unikalnymi anonimowymi typami?
To jest coś, co zawsze mnie niepokoiło jako cecha wyrażeń lambda w C ++: typ wyrażenia lambda w C ++ jest unikalny i anonimowy, po prostu nie mogę go zapisać. Nawet jeśli utworzę dwie lambdy, które są dokładnie takie same pod względem składniowym, otrzymane typy są definiowane jako różne. Konsekwencją …

1
Jakie typy Rusta są oznaczone pojedynczym apostrofem?
Napotkałem wiele typów w Rust oznaczonych jednym apostrofem: 'static 'r 'a Jakie jest znaczenie tego apostrofu? Może to modyfikator referencji ( &)? Typowe typowanie specyficzne dla odniesień? Nie mam pojęcia, gdzie ukrywa się dokumentacja.
89 rust 

2
Jak przekazać funkcję Rust jako parametr?
Czy mogę przekazać funkcję jako parametr? Jeśli nie, jaka jest dobra alternatywa? Próbowałem różnych składni, ale nie znalazłem właściwej. Wiem, że potrafię to zrobić: fn example() { let fun: fn(value: i32) -> i32; fun = fun_test; fun(5i32); } fn fun_test(value: i32) -> i32 { println!("{}", value); value } ale to …
89 rust 

1
Jak przekonwertować liczbę całkowitą na ciąg?
Nie mogę skompilować kodu, który konwertuje typ z liczby całkowitej na ciąg. Korzystam z przykładu z samouczka Rust for Rubyists, który ma różne konwersje typów, takie jak: "Fizz".to_str()i num.to_str()(gdzie numjest liczbą całkowitą). Myślę, że większość (jeśli nie wszystkie) z tych to_str()wywołań funkcji została wycofana. Jaki jest obecny sposób konwersji liczby …

1
Co to są nieleksykalne okresy życia?
Rust ma dokument RFC dotyczący nieleksykalnych okresów istnienia, który został zatwierdzony do implementacji w języku przez długi czas. Ostatnio obsługa tej funkcji przez Rust znacznie się poprawiła i jest uważana za kompletną. Moje pytanie brzmi: czym właściwie jest nieleksykalne życie?


7
Jak utworzyć literał HashMap?
Jak mogę utworzyć literał HashMap w Rust? W Pythonie mogę to zrobić tak: hashmap = { 'element0': { 'name': 'My New Element', 'childs': { 'child0': { 'name': 'Child For Element 0', 'childs': { ... } } } }, ... } A w Go w ten sposób: type Node struct { …
87 hashmap  rust 



1
Kiedy inline powinno być używane w Rust?
Rust ma atrybut „inline”, którego można użyć w jednym z tych trzech rodzajów: #[inline] #[inline(always)] #[inline(never)] Kiedy należy ich używać? W odwołaniu do Rusta widzimy sekcję atrybutów inline mówiącą Kompilator automatycznie wstawia funkcje na podstawie wewnętrznej heurystyki. Nieprawidłowe wstawianie funkcji może w rzeczywistości spowolnić program, dlatego należy z niego korzystać …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.