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

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

1
Коли слід використовувати inline в Rust?
Іржа має вбудований атрибут, який можна використовувати в одному з цих трьох ароматів: #[inline] #[inline(always)] #[inline(never)] Коли їх слід застосовувати? У посиланні Rust ми бачимо розділ вбудованих атрибутів, в якому сказано Компілятор автоматично вбудовує функції на основі внутрішньої евристики. Неправильно вбудовані функції можуть насправді зробити програму повільнішою, тому їй слід …


3
Як зупинити ітерацію та повернути помилку, коли Iterator :: map повертає Result :: Err?
У мене є функція, яка повертає Result: fn find(id: &Id) -> Result<Item, ItemError> { // ... } Потім інший використовує його так: let parent_items: Vec<Item> = parent_ids.iter() .map(|id| find(id).unwrap()) .collect(); Як я розглядаю випадки збою всередині будь-якої з mapітерацій? Я знаю, що міг би використовувати, flat_mapі в цьому випадку результати …
84 rust  rust-result 


1
Що таке атрибут ящика і куди його додати?
Щоб відчути, як працює Rust, я вирішив поглянути на маленький текстовий редактор на базі терміналу під назвою Iota . Я клонував сховище і побіг cargo buildлише, щоб мені сказали: error: *if let* syntax is experimental help: add #![feature(if_let)] to the crate attributes to enable Де я повинен додати #![feature(if_let)]до обрешітки …
83 rust  rust-cargo 

4
Що таке мономорфізація в контексті C ++?
Нещодавно виступ Дейва Германа в Русті сказав, що вони запозичили це майно у C ++. Я не міг знайти нічого навколо теми. Хтось може пояснити, що означає мономорфізація?
82 c++  rust 

6
Чому велика літера першої лінії рядка так звита в Rust?
Я хотів би написати велику літеру з першої літери &str. Це проста проблема, і я сподіваюся на просте рішення. Інтуїція підказує мені зробити щось подібне: let mut s = "foobar"; s[0] = s[0].to_uppercase(); Але &strs не можна індексувати так. Єдиний спосіб, яким я зміг це зробити, здається надто заплутаним. Я …
81 string  rust  uppercase 

4
Після встановлення rustup ланцюжок інструментів за замовчуванням не налаштований
Я встановив Rust за допомогою rustup , але коли я намагаюся ввести команду Rust, як cargoабо rustcна моїй консолі, з'являється така помилка: error: no default toolchain configured Це відома проблема? Я використовую Windows 7.
81 rust 

2
Яка різниця між розміщенням "mut" перед назвою змінної та після ":"?
Ось два підписи функцій, які я бачив у документації Rust: fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo } fn modify_foo(foo: &mut i32) { *foo += 1; *foo } Чому різне розміщення mut? Здається, що перша функція також може бути оголошена як fn modify_foo(foo: mut Box<i32>) { /* ... …

4
Створення вектора нулів для певного розміру
Я хотів би ініціалізувати вектор нулів із певним розміром, який визначається під час виконання. У C це буде так: int main(void) { uint size = get_uchar(); int A[size][size]; memset(A, 0, size*size*sizeof(int)); } Ось допоміжна функція, яку я намагався писати в Rust, але я думаю, що синтаксис нарізки 0..sizeображає компілятор. До …
80 rust 

1
Що таке "фундаментальний тип" у Русті?
Десь я підібрав термін "фундаментальний тип" (і його атрибут #[fundamental]) і просто зараз хотів дізнатися про нього більше. Я смутно пам'ятаю, що це стосується послаблення правил узгодженості в деяких ситуаціях. І я думаю, що базові типи є такими фундаментальними. На жаль, пошук в Інтернеті не привів мене дуже далеко. Посилання …
37 rust 


1
Що означає "не може запозичити як незмінний, оскільки він також запозичений як змінний" означає в індексі вкладеного масиву?
Що означає помилка в цьому випадку: fn main() { let mut v: Vec<usize> = vec![1, 2, 3, 4, 5]; v[v[1]] = 999; } error[E0502]: cannot borrow `v` as immutable because it is also borrowed as mutable --> src/main.rs:3:7 | 3 | v[v[1]] = 999; | --^---- | | | | …

2
Чому `std :: mem :: drop` точно так само, як і закриття | _ | () у межах вищого рангу?
Реалізація std::mem::dropдокументально підтверджена таким чином: pub fn drop<T>(_x: T) { } Як таке, я б очікував, що закриття |_| ()(у розмові відоме як закриття туалету ) буде потенційною заміною 1: 1 dropв обох напрямках. Однак, наведений нижче код показує, що dropвін не сумісний із ознакою вищого рейтингу, прив'язаною до параметра …

4
Як повернути асоційований тип із присвоєної рисою вищої категорії?
У мене є ознака, яка має функцію десеріалізації асоційованого типу. Однак цей асоційований тип повинен мати тривалість життя, яку вирішує абонент, тому у мене є окрема ознака, для якої я використовую присвоєну рису вищого рангу, щоб її можна було дезаріалізувати протягом будь-якого життя. Мені потрібно використовувати закриття, яке повертає цей …

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