rust

Jakie są różnice między `String` Rusta i`str'?

Dlaczego Rust mA String i str? Jakie są różnice między String i str? Kiedy używa się String zamiast str i odwrotnie? Czy jeden z nich jest przestarzały?

Jakie są dokładne zasady auto-dereferencji Rusta?

Uczę się / eksperymentuję z Rustem i w całej elegancji, którą znajduję w tym języku, jest jedna osobliwość, która mnie zaskak ... ef. Jakie są dokładne zasady auto-dereferencji? Czy ktoś może podać jakieś formalne uzasadnienie takiej decyzji projektowej?

Dlaczego nie mogę zapisać wartości i odniesienia do tej wartości w tej samej strukturze?

Mam wartość i chcę zapisać tę wartość i odniesienie do coś wewnątrz tej wartości w moim własnym typie: struct Thing { c ... W każdym z tych przypadków pojawia się błąd, że jedna z wartości " robi nie żyj wystarczająco długo". Co to za błąd wredny?

Dlaczego kompilator Rusta nie optymalizuje kodu przy założeniu, że dwa zmienne odniesienia nie mogą być aliasem?

Z tego, co wiem, aliasing referencji/wskaźników może utrudnić kompilatorowi generowanie zoptymalizowanego kodu, ponieważ musi ... zcze analizy aliasów do optymalizacji? Czy to dlatego, że jest jeszcze szansa, że a i b mogą się nazywać, nawet w safe Rust?

Dlaczego nie drukujemy! praca w testach jednostkowych rdzy?

Zaimplementowałem następującą metodę i test jednostkowy: use std::fs::File; use std::path::Path; use std::io::prelude::*; ... go test Otrzymuję wiadomość, że test przeszedł pomyślnie, ale println! nigdy nie jest wyświetlany na ekranie. Dlaczego nie?

Dlaczego duży wpływ na wydajność ma zapętlenie tablicy zawierającej 240 lub więcej elementów?

Podczas uruchamiania pętli sum nad tablicą w Rust, zauważyłem ogromny spadek wydajności, gdy CAPACITY > = 240. CAPACITY = ... r.len() { s += arr[i]; } sum += s; } println!("sum:{} time:{:?}", sum, now.elapsed()); }

Jaki jest prawidłowy sposób zwracania iteratora (lub jakiejkolwiek innej cechy)?

Poniższy kod Rusta kompiluje się i działa bez żadnych problemów. fn main() { let text = "abc"; println!("{}", text.s ... tr>> : std::iter::Iterator` Jaki byłby prawidłowy kod, aby uruchomić ten program? .... a gdzie jest moja Luka wiedzy?

Jaki jest de facto sposób odczytu i zapisu plików w Rust 1.x?

Ponieważ Rust jest stosunkowo nowy, widziałem zbyt wiele sposobów odczytu i zapisu plików. Wiele z nich to bardzo niechlujne ... ^^^^^ Podsumowując, to czego szukam to: zwięzłość czytelność obejmuje wszystkie możliwe błędy nie panikuje

Potrzebujesz całościowego wyjaśnienia na temat komórek Rusta i typów referencyjnych

Istnieje kilka typów wrapperów w bibliotece standardowej Rusta: komórki w std::cell moduł: Cell oraz RefCell owijki z lic ... obaczyć całego obrazu. Co dokładnie robią? Czy komórki i rodziny z liczeniem odniesienia mają ortogonalne lub podobne cechy?

Czy jest możliwe, aby Typ był tylko ruchomy i nie podlegał kopiowaniu?

uwaga wydawcy: to pytanie zostało zadane przed Rustem 1.0 i niektóre twierdzenia w tym pytaniu niekoniecznie są prawdziwe ... to posiadanie czegoś, co jest kopiowalne i uczynienie tego nie-kopiowalnym, aby się przemieszczało. Czy to w ogóle ma sens?

Dlaczego w Rust potrzebne są wyraźne okresy życia?

Czytałam rozdział lifetimes Księgi Rusta i natknęłam się na ten przykład na nazwane / jawne życie: struct Foo<'a> { ... . W jakich przypadkach są jawne życia rzeczywiście potrzebne, aby zapobiec use-after-free (lub jakiejś innej klasie?) błędy?

Podziel moduł na kilka plików

Chcę mieć moduł z wieloma strukturami w nim, każdy w swoim własnym pliku. użycie modułu Math jako przykład: Math/ Vector ... y to zrobić. Wydaje się, że pozwala Ci mieć cały moduł w jednym pliku. Czy to nie rustykalne? Jeśli nie, to jak to zrobić to?

Idiomatic callbacks in Rust

W C / C++ normalnie wykonywałbym wywołania zwrotne ze zwykłym wskaźnikiem funkcji, może przekazując też parametr void* userda ... i jaki typ powinna być mCallback? Czy powinno to zająć Fn? Może FnMut? Czy Mogę to zapisać Boxed? Przykład byłby niesamowity.

Jak przekonwertować Łańcuch znaków na & ' static str

Jak przekształcić String w &str? Dokładniej, chciałbym przekształcić go w str z static lifetime (&'static str).

Jaka jest różnica między umieszczeniem "mut" przed nazwą zmiennej a po":"?

Oto dwie sygnatury funkcji, które widziałem w dokumentacji Rusta: fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo ... Wydaje się, że pierwsza funkcja może być również zadeklarowana jako fn modify_foo(foo: mut Box<i32>) { /* ... */ }

Cross-kompilacja aplikacji Rust z Linuksa na Windows

W zasadzie staram się skompilować najprostszy kod do Windows, podczas gdy rozwijam się na Linuksie. fn main() { println! ... r: aborting due to previous error Czy istnieje sposób na skompilowanie kodu pod Linuksem, który będzie działał pod Windows?

Pakiet Rust z biblioteką i binarnym?

Chciałbym stworzyć pakiet Rusta, który zawiera zarówno bibliotekę wielokrotnego użytku (gdzie większość programu jest zaimple ... go używa. Zakładając, że nie pomyliłem żadnej semantyki w systemie modułu Rusta, jak powinien wyglądać mój plik Cargo.toml?

Jak uzyskać odniesienie do konkretnego typu z obiektu cechy?

Jak uzyskać Box<B> lub &B lub &Box<B> ze zmiennej a w tym kodzie: trait A {} struct B; impl A for B {} ... ^^^^^^ | = note: an `as` expression can only be used to convert between primitive types. Consider using the `From` trait

Dlaczego pliki wykonywalne Rust są tak ogromne?

Po znalezieniu Rusta i przeczytaniu dwóch pierwszych rozdziałów dokumentacji, uważam podejście i sposób, w jaki zdefiniowano ... eje polecenie strip przegapiłem (debug info wewnątrz release build?)? Coś jeszcze, co może pozwolić zrozumieć, co się dzieje?

Jak program Rust może uzyskać dostęp do metadanych z pakietu Cargo?

Jak uzyskać dostęp do metadanych pakietu Cargo (np. wersji) z kodu Rust w pakiecie? W moim przypadku buduję narzędzie wiersza ... scach. Mogę sobie wyobrazić, że są inne powody, dla których ktoś może chcieć uzyskać dostęp do Metadanych ładunku z programu.