The OpenNET Project / Index page

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



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

Исходное сообщение
"Линус Торвальдс не исключил возможность интеграции поддержки..."
Отправлено warlock66613, 28-Июн-22 03:41 
> И нет, вот именно то в сишке обычно никаких проблем никому не создавало

Одна из самых известных проблем, ради которой какие только костыли ни придумывали — и "сравнение наоборот" (`2 == x` вместо `x == 2`), и дополнительные скобки и чего только не придумывали. А всё что нужно — чтобы присваивание не возвращало значения.

> С фига вот нельщя -> i32, i16 и return (10, 20)?

Потому что `(10, 20)` — это и есть тупл. Поэтому `-> (i32, i16)`.

> По-моему, width и height это 2 именованых входных параметра

Но при вызове функции эти имена теряются, нельзя позвать `area(width: 1, height: 2)`. С возвращаемым значением наоборот — при вызове можно поименовать компоненты тупла: `let (width, height) = function();`, а в сигнатуре функции они безимянные.

> когда он вон там автоматически добавляет, а вот там нет

Автореференс делается в одной, строго оговорённой ситуации. Есть один реальный кейс, где это реально выливается в неприятную штуку, но тут просто нет решения лучше, нет альтернативы.

> Если я смотрю на хруст и его синтаксис, да еще в их
> буке, кивать куда-то еще очень сильно не комильфо, имхо. Смысл в
> таком буке?

Смысл в том, что это не учебник программирования.

> Если ubsan активировать, становится  defined behavior'ом, так же дает в тыкву,
> 1 в 1 :).

Ну и в чём проблема-то?

> "Убийц хруста" уже несколько штук есть.

Они даже близко не стоят по степени готовности.

> И нехило бы в компилтайме чекнуть что оно именно вот так.

Без зависимых типов это всё паллиатив, мёртвому припарка. Но в Rust такое можно сделать, без проблем. Только ерунда это.

> какой-то варнинг

Непонятно что с этим ворнингом дальше делать. Только затыкать, но тогда это некорректный ворнинг получается, такому ворнингу в компиляторе не место, он как минимум в линтере должен быть, а то и вообще в полноценном статическом анализаторе. Но полноценный статический анализатор и без явного типа-диапазона может провести доказательство, что в нужном месте паника не возникает.

> Вообще-то предполагается что это учебник программирования на этом языке. С какими-то более-менее реалистичными конструкциями.

Я не знаю кем такое предполагается. Учебник — это совсем другая книга, другой жанр. Например, не может быть учебника без задач.

> На 8-битном уродце лестница арифметики получается такая что часто всем просто вломы
> это. И честно говоря я не понимаю зачем u128 делать базовым
> типом. Для BigInt мало, на большей части платформ не особо эффективно,
> мелочевку нагибает (байбай, универсальность), а в реалистичных случаях всякие там смещения
> в файлах и проч к 2^64 врядли приблизятся в обозримом будущем.

Не могу тут ничего сказать. Не знаю. Но, например, монотонное время в наносекундах в u64 не влезает. Так, в линуксах `timespec` состоит из 64-битных секунд и 32-битных наносекунд, так что если пытаться упаковать это в одно число, то нужно u128. Но это, конечно, слабый аргумент.

 

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



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

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