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

1
Kiedy zamknięcie implementuje Fn, FnMut i FnOnce?
Jakie są szczególne warunki dla zamknięcia do wdrożenia Fn, FnMutoraz FnOncecechy? To jest: Kiedy zamknięcie nie realizuje FnOncecechy? Kiedy zamknięcie nie realizuje FnMutcechy? Kiedy zamknięcie nie realizuje Fncechy? Na przykład mutacja stanu zamknięcia w jego treści powoduje, że kompilator nie implementuje Fngo.
114 rust  closures 


2
Kiedy należy stosować typ skojarzony, a kiedy typ ogólny?
W tym pytaniu pojawił się problem, który można rozwiązać, zmieniając próbę użycia parametru typu ogólnego na typ skojarzony. To wywołało pytanie „Dlaczego skojarzony typ jest tutaj bardziej odpowiedni?”, Co sprawiło, że chciałem wiedzieć więcej. Dokument RFC, który wprowadził powiązane typy, mówi: Ten dokument RFC wyjaśnia dopasowanie cech przez: Traktowanie wszystkich …
109 types  rust  idiomatic 

5
Czy w Rust można używać zmiennych globalnych?
Wiem, że generalnie należy unikać zmiennych globalnych. Niemniej jednak uważam, że w sensie praktycznym czasami jest pożądane (w sytuacjach, gdy zmienna jest integralna z programem), aby ich używać. Aby nauczyć się Rusta, obecnie piszę program do testowania bazy danych przy użyciu sqlite3 i pakietu Rust / sqlite3 na GitHub. W …

5
Jak iterować zakres z krokiem niestandardowym?
Jak mogę iterować zakres w Rust z krokiem innym niż 1? Pochodzę z C ++, więc chciałbym zrobić coś takiego for(auto i = 0; i <= n; i+=2) { //... } W Rust muszę użyć tej rangefunkcji i nie wygląda na to, że jest dostępny trzeci argument za niestandardowym krokiem. …
106 rust 


3
Jak mogę zbudować wiele plików binarnych za pomocą Cargo?
Chciałbym zrobić projekt z a daemoni client, łącząc się przez gniazdo unixowe. A clienti a daemonwymagają dwóch plików binarnych, więc jak mam Cargozbudować dwa cele z dwóch różnych źródeł? Aby dodać trochę fantazji, chciałbym mieć librarygłówną część daemoni po prostu mieć plik binarny, aby go owinąć i komunikować przez gniazda. …
106 rust  rust-cargo 

2
Jak korzystać z lokalnej niepublikowanej skrzynki?
Zrobiłem bibliotekę: cargo new my_lib i chcę użyć tej biblioteki w innym programie: cargo new my_program --bin extern crate my_lib; fn main { println!("Hello, World!"); } co muszę zrobić, aby to zadziałało? Nie znajdują się w tym samym folderze projektu. . ├── my_lib └── my_program Mam nadzieję, że to ma …

1
Czy istnieje szybszy / krótszy sposób inicjalizacji zmiennych w strukturze Rusta?
W poniższym przykładzie wolałbym przypisać wartość do każdego pola w strukturze w deklaracji pól. Alternatywnie, aby przypisać wartość do pól, potrzeba jednej dodatkowej instrukcji dla każdego pola. Wszystko, co chcę zrobić, to przypisać wartości domyślne podczas tworzenia wystąpienia struktury. Czy jest na to bardziej zwięzły sposób? struct cParams { iInsertMax: …
102 rust 

1
Jak efektywnie wyszukiwać i wstawiać do HashMap?
Chciałbym wykonać następujące czynności: Wyszukaj Vecokreślony klucz i zapisz go do późniejszego użytku. Jeśli nie istnieje, utwórz pusty Vecdla klucza, ale nadal przechowuj go w zmiennej. Jak to zrobić skutecznie? Oczywiście pomyślałem, że przydałoby się match: use std::collections::HashMap; // This code doesn't compile. let mut map = HashMap::new(); let key …
102 hashmap  rust  lookup 

5
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() { // ... } Jednak system modułów Rusta (który na …
102 module  rust 


1
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 (...) { ... mCallback(); } } private: Callback mCallback; }; Jaki …
101 callback  rust 


2
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 przekażę to do funkcji, jest ona …
96 rust 

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.