Как стать автором
Обновить
13
0
Вафель Лапкин @MaybeWaffle

Rust junior

Отправить сообщение

Мне кажется вы что-то перепутали, сейчас в стабильном расте тип const-generic параметра вообще может быть только числом, bool и char, свои типы нельзя использовать даже с #[derive(PartialEq)].

Подобное ограничение есть в паттерн матчинге, там константные паттерны работают только с типами у которых есть derive(PartialEq, Eq), но там и ссылки работают:

#[derive(PartialEq, Eq)]
struct Derived(i32);
struct Manual(i32);

impl Eq for Manual {}
impl PartialEq for Manual { ... }

const D: Derived = Derived(0);
const DR: &'static Derived = &Derived(0);
const M: Manual = Manual(0);

match Manual(1) {
    // error: to use a constant of type `Manual` in a pattern, `Manual` must be annotated with `#[derive(PartialEq, Eq)]`
    M => println!("zero???"),
    _ => println!("non-zero :("),
}

match Derived(1) {
  D => println!("zero!"), // ok
  _ => println!("non-zero :("),
}

match &Derived(1) {
  DR => println!("zero!"), // ok
  _ => println!("non-zero :("),
}

Извините за оффтоп, но с помощью чего был нарисован граф? Уже давно ищу инструменты для такого...

Хм, извиняюсь. Мне казалось я видел как ты где-то делал примеры кода на расте… Наверное перепутал с кем-то другим

Автор знает Rust. Вот например упоминание в другой ветке: https://habr.com/ru/post/497114/#comment_21547706

Так же динамическая типизация помогает в случаях, если функция занимается вызовом других функций, в зависимости от их типов (для тех языков, где не придумали конструкции как в Swift, которая действительно удобнее)

А какие конструкции придумали в свифте? Ниразу свифт не щупал, но интересно что там с функциями интересного "придумали" :)

В расте надо выбирать написать код без unsafe или чуть более оптимальный внутри unsafe.

Не раз слышал что unsafe-код заменяли на safe с выигрышем по производительности, так что не думаю что тут есть выбор между "написать код без unsafe или чуть более оптимальный внутри unsafe". Скорее есть возможность safe-код, скорость которого не устраивает, попытаться оптимизировать с помощью unsafe.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность