The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"В ветку ядра Linux-next добавлен код для разработки драйверо..."
Отправлено Аноним, 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). Но минимального знания раста дальнейший разговор не имеет смыслы - вы просто не совсем понимаете что там написано.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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