OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 01:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Воскресенье, 26 Апрель, 2020 00:34 

Зарегистрирован: Понедельник, 11 Сентябрь, 2017 13:23
Сообщения: 1557
Я запутался. Пытаюсь найти в существущем PDF (который WIP), но там нашлось только:
Цитата:
A type guard on numbers has been introduced. A guarded number is converted to the
given type if and only if its value is not changed. When it fails (i.e. when the actual
value of a number is not compatible to / cannot be represented by the type), a trap is
raised.

При этом:
Код:
MODULE Proba;

IMPORT KernelLog, Commands;

PROCEDURE Test*(c : Commands.Context);
VAR i : UNSIGNED8;
BEGIN
i := 255;
KernelLog.String("SIGNED64(i) "); KernelLog.Int(SIGNED64(i),0); KernelLog.Ln;
KernelLog.String("SIGNED64(UNSIGNED16(i)) "); KernelLog.Int(SIGNED64(UNSIGNED16(i)),0); KernelLog.Ln;
END  Test;

END Proba.Test 

Печатает в 32-разрядной Windows версии вот что:
Код:
SIGNED64(i) -4294967041
SIGNED64(UNSIGNED16(i)) 255

Пытался также посмотреть в сообщении об обычном Обероне, но там тоже как-то скупо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 27 Апрель, 2020 14:45 

Зарегистрирован: Пятница, 11 Январь, 2019 19:26
Сообщения: 293
Откуда: Russia
Должно быть 255. Так что 1) это баг, 2) всё верно.
У type guard форма записи ( e )T


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB