rust ×12
Создан 19.01.2025
0
голоса
1
ответов
973
просмотров
Как проще всего преобразовать строку в верхний регистр в Rust?

Я пытаюсь выяснить, как преобразовать строку в верхний регистр в Rust. На данный момент я нашел следующий оптимальный способ:

let s = "smash";
let asc = s.to_ascii().to_upper();
println!("Hulk {:s}", asc.as_str_ascii());

Есть ли менее многословный способ сделать это?

Примечание:...

0
голоса
2
ответов
11
просмотров
Доступ к последнему элементу 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)...
0
голоса
1
ответов
56
просмотров
В чем разница между передачей значения функции по ссылке и передачей через Box?

В чем разница между передачей значения функции по ссылке и передачей "по коробке"?

В приведенном коде рассматривается вопрос о разнице между передачей переменной, хранящейся в стеке, и переменной, хранящейся в куче, в функции. Программа выглядит так:

fn main() {
    let mut stack_a =...
0
голоса
1
ответов
105
просмотров
Лучшие практики использования постоянных хеш-карт в Rust

Описание проблемы:

Я пытаюсь установить константную, предопределенную хэш-карту в Rust, но не уверен, как лучше всего это сделать с точки зрения практики. Я создал следующий код:

use std::collections::HashMap;

pub const Countries: HashMap = [
    ("UK", "United Kingdom"),
    ("US",...
0
голоса
0
ответов
19
просмотров
Как перебрать кластеры графем Unicode в Rust?

Я изучаю язык Rust и был удивлён тем, что Rust различает только байтовые последовательности UTF-8, но не фактические графемные кластеры (то есть диакритические знаки считаются отдельными символами).

Например, Rust может преобразовать входной текст в вектор следующим образом (с помощью...

0
голоса
0
ответов
12
просмотров
Как преобразовать поля при десериализации с использованием Serde?

Я использую Serde для десериализации XML-файла, который содержит шестнадцатеричное значение в виде строки 0x400. Мне необходимо преобразовать его в значение 1024 как тип u32.

Нужен ли мне реализация трейта Visitor, чтобы отделить «0x» и затем раскодировать «400» из базы 16 в базу 10? Если...

0
голоса
0
ответов
28
просмотров
Можно ли пометить функцию как устаревшую?

У меня есть задача пометить функции и методы как устаревшие. Я попробовал использовать атрибут deprecated следующим образом:

#[deprecated] fn old_way_of_doing_it() {

Однако это приводит к ошибке:

error: stability attributes may not be used outside of the standard library

Есть ли способ, с...

0
голоса
1
ответов
22
просмотров
Что означает "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...
0
голоса
1
ответов
16
просмотров
Как умножать/делить/складывать/вычитать числа разных типов?

Я работаю с вторым изданием справочника по Rust и решил попробовать создать классический конвертер градусов Цельсия в Фаренгейты.

Вот мой код:

fn c_to_f(c: f32) -> f32 {
    return ( c * ( 9/5 ) ) + 32;
}

При компиляции этого кода с помощью cargo build возникает ошибка времени...

5
голоса
5
ответов
27
просмотров
Как отключить предупреждения о неиспользуемом коде на уровне крейта в Rust?

Я сталкиваюсь с проблемой в Rust, когда во время работы над проектом меня постоянно беспокоят предупреждения о "мертвом коде", что затрудняет концентрацию на задачах. Я попытался использовать атрибут #[allow(dead_code)], однако он позволяет подавить только одно предупреждение за раз.

Вот пример...

6
голоса
3
ответов
55
просмотров
Как конкатенировать строки?

Вот описание проблемы для StackOverflow на русском языке:


Как мне конкатенировать следующие комбинации типов:

str и str String и str String и String


Если вам нужно больше деталей, дайте знать!

6
голоса
5
ответов
39
просмотров
Почему 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();
   ...