Вопросы
Как проще всего преобразовать строку в верхний регистр в Rust?
Я пытаюсь выяснить, как преобразовать строку в верхний регистр в Rust. На данный момент я нашел следующий оптимальный способ:
let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());
Есть ли менее многословный способ сделать это?
Примечание:...
Доступ к последнему элементу Vec или среза в Rust
Проблема с методом top()
в реализации трейта Stack
У меня есть код, который выглядит следующим образом:
trait Stack {
fn top(&mut self) -> Option;
}
impl Stack for Vec {
fn top(&mut self) -> Option {
match self.pop() {
None => None,
Some(v)...
В чем разница между передачей значения функции по ссылке и передачей через Box?
В чем разница между передачей значения функции по ссылке и передачей "по коробке"?
В приведенном коде рассматривается вопрос о разнице между передачей переменной, хранящейся в стеке, и переменной, хранящейся в куче, в функции. Программа выглядит так:
fn main() {
let mut stack_a =...
Лучшие практики использования постоянных хеш-карт в Rust
Описание проблемы:
Я пытаюсь установить константную, предопределенную хэш-карту в Rust, но не уверен, как лучше всего это сделать с точки зрения практики. Я создал следующий код:
use std::collections::HashMap;
pub const Countries: HashMap = [
("UK", "United Kingdom"),
("US",...
Как перебрать кластеры графем Unicode в Rust?
Я изучаю язык Rust и был удивлён тем, что Rust различает только байтовые последовательности UTF-8, но не фактические графемные кластеры (то есть диакритические знаки считаются отдельными символами).
Например, Rust может преобразовать входной текст в вектор следующим образом (с помощью...
Как преобразовать поля при десериализации с использованием Serde?
Я использую Serde для десериализации XML-файла, который содержит шестнадцатеричное значение в виде строки 0x400
. Мне необходимо преобразовать его в значение 1024
как тип u32
.
Нужен ли мне реализация трейта Visitor
, чтобы отделить «0x» и затем раскодировать «400» из базы 16 в базу 10? Если...
Можно ли пометить функцию как устаревшую?
У меня есть задача пометить функции и методы как устаревшие. Я попробовал использовать атрибут deprecated
следующим образом:
#[deprecated] fn old_way_of_doing_it() {
Однако это приводит к ошибке:
error: stability attributes may not be used outside of the standard library
Есть ли способ, с...
Что означает "Sized не реализован"?
У меня возникла проблема с компиляцией кода на Rust, и я хотел бы получить помощь. Я написал следующий код:
use std::io::{IoResult, Writer};
use std::io::stdio;
fn main() {
let h = |&: w: &mut Writer| -> IoResult {
writeln!(w, "foo")
};
let _ = h.handle(&mut...
Как умножать/делить/складывать/вычитать числа разных типов?
Я работаю с вторым изданием справочника по Rust и решил попробовать создать классический конвертер градусов Цельсия в Фаренгейты.
Вот мой код:
fn c_to_f(c: f32) -> f32 {
return ( c * ( 9/5 ) ) + 32;
}
При компиляции этого кода с помощью cargo build
возникает ошибка времени...
Как отключить предупреждения о неиспользуемом коде на уровне крейта в Rust?
Я сталкиваюсь с проблемой в Rust, когда во время работы над проектом меня постоянно беспокоят предупреждения о "мертвом коде", что затрудняет концентрацию на задачах. Я попытался использовать атрибут #[allow(dead_code)]
, однако он позволяет подавить только одно предупреждение за раз.
Вот пример...
Как конкатенировать строки?
Вот описание проблемы для StackOverflow на русском языке:
Как мне конкатенировать следующие комбинации типов:
str и str String и str String и String
Если вам нужно больше деталей, дайте знать!
Почему println! не работает в юнит-тестах Rust?
Я реализовал следующий метод и юнит-тест:
use std::fs::File;
use std::path::Path;
use std::io::prelude::*;
fn read_file(path: &Path) {
let mut file = File::open(path).unwrap();
let mut contents = String::new();
file.read_to_string(&mut contents).unwrap();
...