The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "В ветку ядра Linux-next добавлен код для разработки драйверо..." +2 +/
Сообщение от Аноним (384), 20-Мрт-21, 22:56 
Без обид, но мне кажется что вы... ну не очень хорошо знаете синтаксис раста. Потому что в этой строке ни одного макроса.

А '?' это оператор распаковки Option value, try_new возвращает Option<Self> (можно глянуть доку https://docs.rs/boxext/0.1.6/boxext/trait.BoxExt.html)
Это гарантирует Null safety - компилятор тебя обяжет или получить значение и работать с ним, или обработать это одним из способов. И не нужно будет писать кучу проверок на null при обращении к значению. Т.е. без ухищрений невозможно будет обратиться к null объекту.
В отличие от с и с++ - там или проверяешь каждый раз, или забиваешь и надеешься на лучшее.

Это кстати не изобретение раста - оно появилось в эйфиле, а потом в C#, Kotlin, Swift, Dart и других.

> BEGIN_MENU(level1_menu)

Как будто что-то мешает написать аналогичное на расте. Ну, только без богомерзких begin-end.

let mut menu = Menu::new();
menu.add("1", "Do something 1!", handler1);
menu.add("2", "Do something 2!", handler2);

И добавляешь сколько нужно. И никаких чеков, никаких закорючек. Даже более короткий и существенно менее отвратительный чем ваш вариант.

> раст высокоуровневее

Конечно высокоуровневее. В си вы опечатались и вместо значения одного enum написали другой такого же базового типа. И ведь молча схавает. Про nested enums можно даже не вспоминать.
Null safety - спасает от целого класса ошибок. Паттерн-матчинг - не киллер фича, но штука крутая (не, ну можно конечно все тоже самое нафигачить ифами, но... зачем?) Zero-Sized Types. Много элементов системного программирования.
И это без наверное главных фишек раста вроде borowing, ownership и lifetimes.

Да тут очень долго можно перечислять. Потому что си это по факту переносимый человекочитабельный ассемблер.

А синтаксис - это вкусовщина. Кто-то обожествляет лисп, а других от него блевать тянет. Или паскаль (хехе, begin-end). Но минимального знания раста дальнейший разговор не имеет смыслы - вы просто не совсем понимаете что там написано.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust, opennews, 19-Мрт-21, 20:18  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру