Rust – вопросы и ответы

-8
голосов
1
ответ
Где я могу найти документы по .collect() ? fn main() { let split = "some string 123 ffd".split("123"); let vec: Vec<&str> = split.collect(); println!("{:#?}",vec); }
7 месяцев, 3 недели назад Matthew Harwood
102
голоса
1
ответ
trait Bar { fn bar(&self); } enum Foo<T: Bar> { F1, F2(T) } struct Something; impl Bar for Something { fn bar(&self) { } } fn main() { let a = Foo::F2(Something); //<== this works ...
7 месяцев, 3 недели назад Wim V
65
голосов
2
ответа
Я пытаюсь заменить одну строку в списке фрагментов строки, и не удается сделать это правильно с временами жизни. Вот мой код: pub struct SomeDataType<'a> { pub lines: Vec<&'a str>, ...
7 месяцев, 3 недели назад Petr Kozelka
65
голосов
1
ответ
У меня есть этот код, который использует generics. trait RefGen { fn gen () -> String; } struct FooGen; impl RefGen for FooGen { fn gen () -> String { "foo".to_owned() } } struct Facade<R:...
7 месяцев, 3 недели назад Christoph
79
голосов
1
ответ
В https://doc.rust-lang.org/book/primitive-types.html#numeric-types говорится, что в пусть x = 42; //x имеет тип i32 Это означает, что x имеет тип i32 по умолчанию. Но в
7 месяцев, 3 недели назад Regis
64
голоса
1
ответ
В настоящее время я должен использовать это для форматирования сообщения .expect() : fn main() { let x: Option<&str> = None; x.expect(&format!("the world is ending: {}", "foo")[..]); ...
7 месяцев, 3 недели назад bux
90
голосов
2
ответа
Я работал с сырыми сокетами в C. Я хочу сделать то же самое в Rust. Насколько я знаю, такой библиотеки для Rust пока нет. Значит, на данный момент это невозможно, не так ли?
7 месяцев, 3 недели назад user4910881
79
голосов
1
ответ
Я только начинаю изучать Ржавчина. Для этого я переписываю свой проект C++ в Rust, но самые большие проблемы - это время жизни закрытия и т.д. Я создал абсолютный минимальный сценарий моей проблемы...
7 месяцев, 3 недели назад hodasemi
64
голоса
2
ответа
fn t(x: &mut u8) -> &mut u8 { x } fn main() { let mut x = 5u8; let y = & mut x; let z = t(y); println!("{}", y); } Компиляция это дает мне эту ошибку: main.rs:9:20: 9:21 error: canno...
7 месяцев, 3 недели назад J V
127
голосов
1
ответ
После некоторого обсуждения , я теперь немного запутался по поводу связи между auto-dereferencing и deref coercion auto-dereferencing . Каж
7 месяцев, 3 недели назад attdona
64
голоса
1
ответ
use std::collections::HashMap; #[derive(Eq, Hash, PartialEq)] struct Key<'a> { key: &'a str, } fn get<'m, 'k, 'kr>(map: &'m HashMap<Key, usize>, key: &'k Key<'kr>...
7 месяцев, 3 недели назад Tomáš Dvořák
136
голосов
1
ответ
Я новичок в Rust и пытаюсь склонить голову к концепции собственности/заимствования. Теперь я уменьшил свой код до этого минимального образца кода, который дает ошибку компиляции. pub struct Display...
7 месяцев, 3 недели назад Virtlink
65
голосов
3
ответа
Есть ли функция, чтобы сделать что-то вроде этого: fn string_to_unicode_char(s: &str) -> Option<char> { // ... } fn main() { let s = r"\u{00AA}"; // note the raw string literal! string...
7 месяцев, 3 недели назад Vladislav Chebanyuk
65
голосов
1
ответ
Я использую метод, который появился в Rust 1.10 для моих тестов, но я хочу, чтобы мой ящик также работал с версией 1.7. Есть ли способ (что-то вроде атрибута #[cfg(min_version="1.10")] ), чтобы ука...
7 месяцев, 3 недели назад antoyo
79
голосов
2
ответа
Я пишу небольшую клиент-серверную программу для зашифрованных сетевых коммуникаций и имею следующую структуру, чтобы позволить конечным точкам согласовывать возможности. struct KeyExchangePacket { ...
7 месяцев, 3 недели назад William Murphy
79
голосов
1
ответ
Программа Rust подпадает под панику при доступе к stdout в обработчике atexit . extern crate libc; extern "C" fn bye() { println!("bye"); } fn main() { println!("hello"); unsafe { libc::atexit(bye)...
7 месяцев, 3 недели назад WiSaGaN
65
голосов
1
ответ
Я не могу использовать следующий код: extern crate gtk use gtk::prelude::* use gtk::Window; use gtk::WindowType; // ... static mut appWindow: Option<Window> = None; fn main() { // ... appWind...
7 месяцев, 3 недели назад CodenameLambda
-5
голосов
1
ответ
Я пытаюсь закодировать некоторые привязки между Rust и динамической библиотекой C. С помощью книги Rust я могу связать динамическую библиотеку и вызвать внешние функции. Моя проблема в том, что мне...
7 месяцев, 3 недели назад Seb
120
голосов
2
ответа
Я пытаюсь клонировать вектор бокс-черт. Естественно, просто выводить Clone на все структуры, реализующие мою черту, недостаточно, потому что компилятор во время компиляции не знает, что все структу...
7 месяцев, 3 недели назад Electric Coffee
121
голос
2
ответа
Я хочу написать функцию, которая принимает разные типы, которые в основном отличаются ( const / mut ) элемента, которые сами принимают общий тип. Чтобы упростить вопрос, я хочу написать функцию, ко...
7 месяцев, 3 недели назад ideasman42
128
голосов
2
ответа
Мне было интересно, есть ли способ получить имена полей структуры в макросе. Рассмотрим следующий пример: struct S { a: String, b: String } и макрос my_macro , который вызывается следующим образом:...
7 месяцев, 3 недели назад Joel Hermanns
80
голосов
2
ответа
Некоторые языки, такие как Haskell, не делают различий между передачей по значению и передачей по ссылке. Затем компилятор может выбрать наиболее эффективный вызов с эвристикой. Один пример эвристи...
7 месяцев, 3 недели назад Łukasz Lew
78
голосов
1
ответ
Я установил Rust на своей 64-разрядной системе Windows 7 с помощью MSYS2 успешно, но при попытке установить Cargo из ночной сборки я получаю следующую ошибку от install.sh : $ ./install.sh install:...
7 месяцев, 3 недели назад andrey g
64
голоса
1
ответ
Как правильно использовать шаблон построителя, который ожидает цепочки методов в цикле? Используя пример из log4rs . Уведомление self не является ссылкой в appender . //builder pattern from
7 месяцев, 3 недели назад marathon
101
голос
1
ответ
Этот код: fn t(r: &[u8]) { match r { _ if r.iter().any(|&x| x == b';') => {} _ => {} } } дает мне ошибку: error[E0301]: cannot mutably borrow in a pattern guard | 10 | _ if r.iter().a...
7 месяцев, 3 недели назад user1244932
79
голосов
1
ответ
Regex Rust Regex не имеет внешнего вида, поэтому я не могу использовать негативный внешний вид для { и негативного ожидания для } . Я
7 месяцев, 3 недели назад Boiethios
134
голоса
1
ответ
Попробуем скомпилировать этот код: trait Bar { fn bar(&mut self); } fn foo(a1: &mut Bar, j: usize) { let a = [a1]; a[0].bar(); //compilation ok a[j % 2].bar(); } fn main() {} Ошибка компиля...
7 месяцев, 3 недели назад chabapok
91
голос
1
ответ
Рассмотрим следующий код: struct MyStruct { not_copyable: NotCopyable } struct NotCopyable; fn main() { let foo = MyStruct { not_copyable: NotCopyable }; foo.not_copyable; foo.not_copyable; // just...
7 месяцев, 3 недели назад musiKk
65
голосов
2
ответа
Я делаю функцию, которая делает массив случайных чисел размера n, но мое сравнение для while вызывает ошибку. while ar.len() as i32 < size { } Жалуется: ожидается один из ! , ( , + , , , :: , &l...
7 месяцев, 3 недели назад Sebastian
65
голосов
2
ответа
У меня есть статический тип массива, который позволяет вам создавать только "разрешенные" фрагменты только для чтения в данных, которые он хранит; но на Drop это assert! что нет "висящих" представл...
7 месяцев, 3 недели назад Doug
90
голосов
1
ответ
Если я вызываю .to_path_buf() сразу после expect , временный каталог не будет создан. Это ошибка или функция Rust? extern crate mktemp; use std
7 месяцев, 3 недели назад qweruiop
64
голоса
1
ответ
Классы значений Scala предоставляют способ использования системы типов без выделения объектов времени выполнения (структуры в случае Rust). Я ищу эквивалент в Rust. Вариант использования, который я...
7 месяцев, 3 недели назад Dominykas Mostauskis
103
голоса
2
ответа
Я хотел бы захватить вывод из другого процесса (например, git status ), обработать его и распечатать со всеми стилями (жирным шрифтом, курсивом, подчеркиванием) и цветами. Для меня очень важно прод...
7 месяцев, 3 недели назад Wojciech Polak
128
голосов
2
ответа
Создает ли компилятор тот же код для iter().map().sum() и iter().fold() ? В итоге они достигают той же цели, но первый код будет итерации два раза, один раз для map и один раз для sum . Вот пример....
7 месяцев, 3 недели назад Max Linke
80
голосов
1
ответ
Как расширить поля из общей структуры, чтобы избежать повторения кода. Предположим, что общая структура имеет много полей, а расширяющаяся структура имеет только некоторые дополнительные поля. Напр...
7 месяцев, 3 недели назад shadowfox
64
голоса
1
ответ
Я пытаюсь внедрить игрушечный язык Monkey в Rust. Я сейчас пытаюсь сгенерировать и AST, но перед этим мне нужно иметь работающий парсер. У меня уже есть свой лексер. Так что соответствующая часть м...
7 месяцев, 3 недели назад joaquinlpereyra
102
голоса
1
ответ
Я пытаюсь написать структуру, которая выводит serde::Deserialize но также имеет поле, которое должно выводить serde::Deserialize : extern crate serde; #[macro_use] extern crate serde_derive; use se...
7 месяцев, 3 недели назад Tarcisio Xavier Gruppi
112
голосов
1
ответ
Ошибка связи с внешней c dll с примером обратного вызова . Я создал anneclib.dll и разбросал его (и lib), даже попробовав полный путь, но все равно получаю ту же ошибку (но с полным путем). Ошибка ...
7 месяцев, 3 недели назад user1496062
78
голосов
2
ответа
Я должен сопоставить байты в &[u8] и хочу упростить мой код. Сейчас это выглядит так: fn f(s: &[u8]) { if Some(&b'A') == s.get(5) && Some(&b'X') == s.get(16) && (Som...
7 месяцев, 3 недели назад user1244932
102
голоса
1
ответ
Я искал способ создания ассоциативного массива в документации, но ничего не нашел. Итак, как мне создать ассоциативный массив в Rust?
7 месяцев, 3 недели назад アレックス
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема