Запитання з тегом «rust»

Іржа - це система програмування без сміттєзбірника, орієнтована на три цілі: безпеку, швидкість та сумісність. Використовуйте цей тег для запитань про код, написаний на "Іржа". Використовуйте тег для видання для запитань, що стосуються коду, який вимагає певного видання, наприклад [rust-2018]. Використовуйте більш конкретні теги для підтемати, наприклад [іржа-вантаж] та [іржа-макрос].

1
Коли закриття реалізує Fn, FnMut і FnOnce?
Які специфічні умови для закриття в цілях здійснення Fn, FnMutі FnOnceриси? Це є: Коли закриття не реалізує FnOnceознаку? Коли закриття не реалізує FnMutознаку? Коли закриття не реалізує Fnознаку? Наприклад, мутація стану закриття на його тілі змушує компілятор не реалізувати Fnйого.
114 rust  closures 

2
Коли доцільно використовувати асоційований тип проти загального типу?
У цьому питанні виникла проблема, яку можна було б вирішити, змінивши спробу використання параметра загального типу на асоційований тип. Це підштовхнуло питання "Чому асоційований тип тут більше підходить?", Який змусив мене знати більше. RFC , які введені пов'язані типи каже: Цей RFC роз'яснює відповідність ознак за допомогою: Трактування всіх параметрів …
108 types  rust  idiomatic 

5
Чи можна використовувати глобальні змінні в Rust?
Я знаю, що загалом слід уникати глобальних змінних. Тим не менше, я думаю, що в практичному сенсі іноді бажано (у ситуаціях, коли змінна є невід'ємною частиною програми) використовувати їх. Для того, щоб вивчити Rust, я зараз пишу програму тестування бази даних, використовуючи sqlite3 та пакет Rust / sqlite3 на GitHub. …

2
Як використовувати місцевий неопублікований ящик?
Я створив бібліотеку: cargo new my_lib і я хочу використовувати цю бібліотеку в іншій програмі: cargo new my_program --bin extern crate my_lib; fn main { println!("Hello, World!"); } що мені потрібно зробити, щоб це працювало? Вони не в одній папці проекту. . ├── my_lib └── my_program Сподіваємось, це має сенс. …

1
Чи існує швидший / коротший спосіб ініціалізації змінних у структурі Rust?
У наступному прикладі я б вважав за краще призначити значення кожному полі в структурі в декларації полів. Крім того, воно ефективно приймає по одній додатковій заяві для кожного поля, щоб призначити значення полям. Все, що я хочу зробити, це присвоїти значення за замовчуванням, коли структура створена. Чи є більш складний …
102 rust 

1
Як шукати і ефективно вставляти в HashMap?
Я хотів би зробити наступне: Знайдіть Vecпевний ключ і зберігайте його для подальшого використання. Якщо його немає, створіть порожній Vecдля ключа, але все ж зберігайте його в змінній. Як це зробити ефективно? Природно, я думав, що можу використовувати match: use std::collections::HashMap; // This code doesn't compile. let mut map = …
102 hashmap  rust  lookup 

5
Розділити модуль на кілька файлів
Я хочу мати в ньому модуль з декількома структурами, кожен у своєму власному файлі. Використання Mathмодуля як приклад: Math/ Vector.rs Matrix.rs Complex.rs Я хочу, щоб кожна структура була в одному модулі, який я б використовував у своєму головному файлі, наприклад: use Math::Vector; fn main() { // ... } Однак модульна …
102 module  rust 

3
Чи можна записати швидку функцію Quake InvSqrt () в Rust?
Це просто для задоволення власної цікавості. Чи є реалізація цього: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } в Іржі? Якщо він існує, опублікуйте код. Я спробував це і …


5
Як зробити ітерацію по діапазону за допомогою користувацького кроку?
Як я можу здійснити ітерацію по діапазону в Rust з кроком, відмінним від 1? Я походжу з фону C ++, тому я хотів би зробити щось подібне for(auto i = 0; i <= n; i+=2) { //... } У Rust мені потрібно використовувати rangeфункцію, і, схоже, не існує третього аргументу …
100 rust 

1
Ідіоматичні зворотні дзвінки в Rust
У C / C ++ я зазвичай роблю зворотні виклики з простим покажчиком функції, можливо, передаючи void* userdataпараметр теж. Щось на зразок цього: typedef void (*Callback)(); class Processor { public: void setCallback(Callback c) { mCallback = c; } void processEvents() { for (...) { ... mCallback(); } } private: Callback …
99 callback  rust 


2
Чи можна зробити тип лише рухомим, а не копіюваним?
Примітка редактора : це питання було задано до Руст 1.0, і деякі твердження у питанні не обов'язково відповідають істині в Руст 1.0. Деякі відповіді було оновлено для розгляду обох версій. У мене є така структура struct Triplet { one: i32, two: i32, three: i32, } Якщо я передаю це функції, …
96 rust 

3
Що має Руст замість збирача сміття?
Я розумію, у Rust немає збирача сміття, і мені цікаво, як звільняється пам’ять, коли прив’язка виходить за рамки. Отже, у цьому прикладі я розумію, що Руст повертає пам’ять, виділену для а, коли вона виходить за межі обсягу. { let a = 4 } Проблема, з якою я маю з цим, …
95 rust 

3
Як я можу створити кілька бінарних файлів за допомогою Cargo?
Я хотів би створити проект з a daemonта a client, підключившись через сокет unix. A clientі a daemonвимагає двох двійкових файлів, так як я можу сказати Cargoпобудувати дві цілі з двох різних джерел? Щоб додати трохи фантазії, я хотів би мати a libraryдля основної частини daemon, і просто мав двійковий …
95 rust  rust-cargo 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.