Pytania oznaczone «rust»

102
Podziel moduł na kilka plików

Chcę mieć moduł z wieloma strukturami, każda w swoim własnym pliku. Na przykładzie Mathmodułu: Math/ Vector.rs Matrix.rs Complex.rs Chcę, aby każda struktura znajdowała się w tym samym module, którego użyłbym z mojego głównego pliku, na przykład: use Math::Vector; fn main() { //...

101
Idiomatyczne połączenia zwrotne w Rust

W C / C ++ normalnie wykonywałbym wywołania zwrotne ze zwykłym wskaźnikiem funkcji, może też przekazując void* userdataparametr. Coś takiego: typedef void (*Callback)(); class Processor { public: void setCallback(Callback c) { mCallback = c; } void processEvents() { for (...) { ......

96
Czy można uczynić czcionkę tylko ruchomą, a nie kopiowalną?

Uwaga redaktora : to pytanie zostało zadane przed Rust 1.0, a niektóre stwierdzenia w nim niekoniecznie są prawdziwe w Rust 1.0. Niektóre odpowiedzi zostały zaktualizowane w celu uwzględnienia obu wersji. Mam tę strukturę struct Triplet { one: i32, two: i32, three: i32, } Jeśli...

95
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...

92
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; //...

91
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...

91
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....

89
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 {...

89
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.

88
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?...

88
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...

87
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 { name string childs...

86
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....