Вопросы с тегом «rust»

Rust - это язык системного программирования без сборщика мусора, ориентированный на три цели: безопасность, скорость и параллелизм. Используйте этот тег для вопросов о коде, написанном на Rust. Используйте специальный тег для вопросов, относящихся к коду, для которого требуется конкретное издание, например [rust-2018]. Используйте более конкретные теги для таких подтем, как [rust-cargo] и [rust-macros].

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


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 …

1
Что такое «толстый указатель» в Rust?
Я уже читал термин «толстый указатель» в нескольких контекстах, но я не уверен, что именно он означает и когда он используется в Rust. Указатель кажется вдвое больше обычного указателя, но я не понимаю почему. Это также имеет какое-то отношение к объектам-признакам.
91 pointers  rust 

9
Зачем создавать язык с уникальными анонимными типами?
Это то, что меня всегда беспокоило как особенность лямбда-выражений C ++: тип лямбда-выражения C ++ уникален и анонимен, я просто не могу его записать. Даже если я создам две лямбда-выражения, которые синтаксически совершенно одинаковы, результирующие типы определены как разные. Следствием этого является то, что а) лямбда-выражения могут быть переданы только …

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

1
Что такое нелексические времена жизни?
В Rust есть RFC, связанный с нелексическим временем жизни, который был одобрен для реализации в языке в течение длительного времени. В последнее время поддержка этой функции в Rust значительно улучшилась и считается полной. У меня вопрос: что такое нелексическая жизнь?

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

1
Каковы накладные расходы типа Option в Rust?
В Rust ссылки никогда не могут быть нулевыми, поэтому, если вам действительно нужен ноль, например связанный список, вы используете Optionтип: struct Element { value: i32, next: Option<Box<Element>>, } Сколько накладных расходов связано с выделением памяти и действиями по разыменованию по сравнению с простым указателем? Есть ли какая-то «магия» в компиляторе …


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 следует использовать inline?
В Rust есть "встроенный" атрибут, который можно использовать в одном из этих трех вариантов: #[inline] #[inline(always)] #[inline(never)] Когда их следует использовать? В справочнике Rust мы видим раздел встроенных атрибутов, в котором говорится Компилятор автоматически встраивает функции на основе внутренней эвристики. Неправильное встраивание функций может фактически замедлить работу программы, поэтому использовать …

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компилятор жалуется на несовпадающие типы: let opt: Option&lt;String&gt; …
85 rust 

1
Что такое «фундаментальный тип» в Rust?
Где-то я подобрал термин «фундаментальный тип» (и его атрибут #[fundamental]) и только сейчас я хотел узнать о нем больше. Я смутно помню, что в некоторых ситуациях мне нужно было ослабить правила согласованности. И я думаю, что ссылочные типы являются такими фундаментальными типами. К сожалению, поиск в Интернете не дал мне …
37 rust 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.