rust

Odniesienia do cech w strukturach

Mam cechę Foo pub trait Foo { fn do_something(&self) -> f64; } I struktura, która odwołuje się do tej cechy p ... t_foo(self) -> Box<Foo> { let foo = self.foo; foo.do_something(); foo } } fn main() {}

Kiedy właściwe jest użycie typu skojarzonego w porównaniu z typem generycznym?

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. ... as pisania kodu, kiedy powinienem wybrać typ skojarzony zamiast parametru typu ogólnego, a kiedy powinienem zrobić odwrotnie?

Czy biblioteka Rusta może być używana z innych języków w sposób, w jaki biblioteki c robią to?

Pisanie takiej biblioteki czy będę musiał poświęcić std? Jak, na przykład, napisać wiązania Pythona do biblioteki rust, jeśli to możliwe?

Jak ta instancja może pozornie przeżyć swój własny parametr lifetime?

Zanim natknąłem się na poniższy kod, byłem przekonany, że życie w parametrze lifetime typu zawsze przeżyje własne instancje. ... kod nie kompiluje się już z tym samym rodzajem błędu ( ). Jak to jest poprawny kod Rust? Jakie jest rozumowanie kompilatora?

Co to jest "gruby wskaźnik"?

Już w kilku kontekstach czytałem termin "fat pointer", ale nie jestem pewien, co dokładnie oznacza i kiedy jest używany w Rus ... a razy większy niż normalny wskaźnik, ale nie rozumiem dlaczego. Wydaje się również, że ma to coś wspólnego z obiektami cech.

Jak uzyskać dostęp do parametrów wiersza poleceń?

Tutorial Rust nie wyjaśnia, jak pobierać parametry z linii poleceń. fn main() jest wyświetlany tylko z pustą listą parametrów we wszystkich przykładach. Jaki jest prawidłowy sposób dostępu do parametrów wiersza poleceń z main?

Jaka jest różnica między cechami w Rust a typeklasami w Haskell?

Cechy w Rust wydają się przynajmniej powierzchownie podobne do typeklasy w Haskell, jednak widziałem, jak ludzie piszą, że są pewne różnice między nimi. Zastanawiałem się dokładnie, jakie są te różnice.

Co sprawia, że coś jest "obiektem cech"?

[7]}ostatnie zmiany rdzy sprawiły, że" obiekty cech " stały się dla mnie bardziej widoczne, ale mam tylko mgliste pojęcie, co ... p, który będzie się liczył jako obiekt cech? Odniesienie wspomina tylko raz o obiektach cech, ale nie ma to jak definicja.

Czym składnia for< > różni się od zwykłej lifetime bound?

Rozważ następujący kod: trait Trait<T> {} fn foo<'a>(_b: Box<Trait<&'a usize>>) {} fn bar(_b: ... blioteka standardowa Rusta używa jej wewnętrznie (często związana z zamknięciami), ale dlaczego mój kod może jej potrzebować?

Zrozumienie i związek między Box, ref, & i *

Jestem trochę zdezorientowany, jak wskaźniki działają w Rust. Jest ref, Box, &, *, i nie jestem pewien, jak oni ze sobą w ... nych typów jest poprawne? Byłbym również wdzięczny, gdyby ktoś wskazał na typowe przypadki użycia, o których nie wspomniałem.

Jak połączyć struny?

Jak połączyć następujące kombinacje typów: str i str String i str String i String

Jak Mogę zobaczyć Rozszerzony kod makra, który powoduje mój błąd kompilacji?

Mam błąd kompilacji z makrem: <mdo macros>:6:19: 6:50 error: cannot move out of captured outer variable in an `FnMut` ... tc (albo jeszcze lepiej cargo), żeby to wyrzucić? (to makro pochodzi z rust-mdo , choć nie sądzę, żeby miało to znaczenie.)

Jak wyłączyć nieużywane ostrzeżenia o kodzie w Rust?

struct SemanticDirection; fn main() {} warning: struct is never used: `SemanticDirection` --> src/main.rs:1:1 | 1 | ... truję przy języku i to doprowadza mnie do Kicia. Próbowałem dodać #[allow(dead_code)] do mojego kodu, ale to nie zadziałało.

Kiedy zamknięcie wdraża Fn, FnMut i FnOnce?

Jakie są szczególne warunki zamknięcia w celu wdrożenia Fn, FnMut i FnOnce Cechy? Czyli: kiedy zamknięcie Nie implemen ... implementuje Fn cechę? Na przykład, mutacja stanu zamknięcia na jego ciele sprawia, że kompilator nie implementuje Fn Na to.

Jaka jest różnica między kopiowaniem a klonem?

Ten problem wydaje się sugerować, że to tylko szczegóły implementacji (memcpy vs ???), ale nie mogę znaleźć jednoznacznego opisu różnic.

Dlaczego nie zaleca się przyjmowania odniesienia do String (&String), Vec (&Vec) lub Box (&Box) jako argumentu funkcji?

Napisałem jakiś kod Rust, który przyjmuje &String jako argument: fn awesome_greeting(name: &String) { println!( ... ol { **value % 2 == 0 } Otrzymałem jednak opinie, że robienie tego w ten sposób nie jest dobrym pomysłem. Dlaczego nie?

Jak utworzyć hashmapę?

Jak mogę utworzyć hashmapę w Rust? W Pythonie mogę to zrobić tak: hashmap = { 'element0': { 'name': 'My New Eleme ... 'child0': Node{ "Child For Element 0", map[string]Node {} } } } }

Jaka jest różnica między iter a ITER?

Robię Rust przez przykład tutorial, który ma ten fragment kodu: // Vec example let vec1 = vec![1, 2, 3]; let vec2 = vec![ ... nto_iter zwraca wartości, ale dla tablicy te Iteratory są identyczne? Jaki jest przypadek użycia / API dla tych dwóch metod?

Jaka jest różnica między parametrycznym polimorfizmem a typami o wyższym pokrewieństwie?

Jestem prawie pewien, że nie są takie same. Jednak jestem ugrzęzły przez powszechnie uważa się, że "Rust nie obsługuje" typów ... wyżej kinded . Wyjaśnienie, które podkreślało różnicę między * -> * -> * i (* -> *) -> *, było dla mnie kluczowe.

Czy jedna struktura może rozszerzyć istniejącą strukturę, zachowując wszystkie pola?

Using rust 1.2.0 Problem Wciąż jestem w trakcie uczenia się Rusta (pochodzącego z tła Javascript) i próbuję dowiedzieć s ... pakiet ładunkowy nie wydaje mi się, żebym mógł go zamienić w cechę. Więc jaki byłby właściwy sposób, aby to osiągnąć w Rust?