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

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


4
Як використовувати макрос у файлах модулів?
У мене є два модулі в окремих файлах в одному ящику, де ящик macro_rulesвключений. Я хочу використовувати макроси, визначені в одному модулі, в іншому модулі. // macros.rs #[macro_export] // or not? is ineffectual for this, afaik macro_rules! my_macro(...) // something.rs use macros; // use macros::my_macro; <-- unresolved import (for obvious …


1
Що таке "жирний покажчик" у Rust?
Я вже читав термін "жирний покажчик" у декількох контекстах, але не знаю, що саме він означає і коли він використовується в Rust. Вказівник, здається, удвічі більший за звичайний, але я не розумію, чому. Здається, це також має щось спільне з об’єктами ознак.
91 pointers  rust 

9
Навіщо розробляти мову з унікальними анонімними типами?
Це те, що мене завжди хвилювало як особливість лямбда-виразів на C ++: Тип лямбда-виразу на C ++ є унікальним та анонімним, я просто не можу записати його. Навіть якщо я створюю дві лямбди, які синтаксично абсолютно однакові, отримані типи визначаються як різні. Наслідком цього є те, що а) лямбди можуть …

2
Яка різниця між використанням та екстерном?
Я новачок у Русті. Я думаю, що useце використовується для імпорту ідентифікаторів у поточну область дії та externвикористовується для оголошення зовнішнього модуля. Але це розуміння (можливо, неправильне) для мене не має жодного сенсу. Хтось може пояснити, чому Руст має ці два поняття і які підходящі випадки для їх використання?
91 rust 

1
Які типи іржі позначаються одним апострофом?
Я зустрічав ряд типів у Rust, позначених одним апострофом: 'static 'r 'a Яке значення має цей апостроф? Можливо, це модифікатор посилань ( &)? Загальний тип набору, характерний для посилань? Я не уявляю, де ховається документація для цього.
89 rust 

2
Як ви передаєте функцію Rust як параметр?
Чи можу я передати функцію як параметр? Якщо ні, то яка хороша альтернатива? Я спробував кілька синтаксисів, але не знайшов правильного. Я знаю, що можу це зробити: fn example() { let fun: fn(value: i32) -> i32; fun = fun_test; fun(5i32); } fn fun_test(value: i32) -> i32 { println!("{}", value); value …
89 rust 

1
Як перетворити з цілого числа у рядок?
Я не можу скомпілювати код, який перетворює тип із цілого числа у рядок. Я запускаю приклад із підручника Rust for Rubyists, який має різні перетворення типів, такі як: "Fizz".to_str()і num.to_str()(де numціле число). Я думаю, що більшість (якщо не всі) цих to_str()викликів функцій застаріли. Яким є поточний спосіб перетворення цілого числа …

1
Що таке нелексичне життя?
У Rust є RFC, пов’язаний із нелексичним життям, який затверджено впроваджувати в цю мову протягом тривалого часу. Останнім часом підтримка цієї функції Рустом значно покращилась і вважається повною. Моє запитання: що саме таке нелексичне життя?


7
Як створити літерал HashMap?
Як я можу створити літерал HashMap у Rust? У Python я можу це зробити так: hashmap = { 'element0': { 'name': 'My New Element', 'childs': { 'child0': { 'name': 'Child For Element 0', 'childs': { ... } } } }, ... } А в Go наступним чином: type Node struct …
87 hashmap  rust 


1
Що таке накладні витрати на тип опції Rust?
У Rust посилання ніколи не можуть бути нульовими, тому у випадку, коли вам насправді потрібне null, наприклад, пов'язаний список, ви використовуєте Optionтип: struct Element { value: i32, next: Option<Box<Element>>, } Скільки накладених на це витрат з точки зору виділення пам’яті та кроків до розмежування порівняно з простим покажчиком? Чи існує …

5
Перетворення з Option <String> на Option <& str>
Дуже часто я отримую значення Option&lt;String&gt;з розрахунку, і я хотів би використати це значення або стандартне значення за замовчуванням. Це було б тривіально з цілим числом: let opt: Option&lt;i32&gt; = Some(3); let value = opt.unwrap_or(0); // 0 being the default Але за допомогою a Stringта a &amp;strкомпілятор скаржиться на невідповідні …
85 rust 

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