Войти
ФлеймФорумПрограммирование

Жабаразмышления

Страницы: 1 2 3 4 5 Следующая »
#0
19:53, 13 мар. 2018

Чисто гипотетически, как можно было бы красиво разрулить ситуацию с отсутствием беззнаковых типов данных в жабе?
С одной стороны меньшее количество типов радует, да и знаковые типы являются более универсальными, по сравнению со своими беззнаковыми собратьями,
с другой стороны при работе с каким-нибудь пртоколом появляется масса попаболи и лишней писанины.
Вот тут надумалось что-то такое (псевдокод и не жаба):

// Создали переменную типа байт, со значением 100
int8 a = 100;

// Ошибка! a.u - беззнаковое представление переменной a,
// для успешного выполнения операции требуется тип большей размерности.
int8 b = a.u;

// Все ок, в переменную b скопировано значение переменной a.
int8 b = (int8)a.u;

// Побитовый сдвиг вправо значения переменной a, в беззнаковой интерпретации.
int8 b = (int8)(a.u >> 1);

Чо думаете?


#1
20:05, 13 мар. 2018

класс не проще создать специальный? В Джаве вроде даже оператор оверлоадинга нету.

#2
20:10, 13 мар. 2018

lookid
Какой класс?
Я тут думаю как бы можно было локаничнее показать в коде, что работаем с беззнаковыми представлениями.

#3
20:12, 13 мар. 2018

nes
> Я тут думаю как бы можно было локаничнее показать в коде, что работаем с
> беззнаковыми представлениями.
Не работать с беззнаковыми представлениями.

#4
20:13, 13 мар. 2018

beejah
А если горит?

#5
20:32, 13 мар. 2018

nes
> А если горит?

+ Показать
#6
21:42, 13 мар. 2018

nes
> А если горит?
Особенно если горит.

#7
22:21, 13 мар. 2018

nes
Каким протоколом? Например?

#8
23:17, 13 мар. 2018

nes
Извини, но ты плохо учил Java. Да, там беззнаковых типов нет, но в классах java.lang.Integer, java.lang.Long есть специальные методы, начинающиеся с unsigned, благодаря которым можно работать с обычными int и long  как с беззнаковыми. Примеры методов для Long:
static int  compareUnsigned(long x, long y)
static long  divideUnsigned(long dividend, long divisor)
static long  parseUnsignedLong(String s)
Можно использовать их.

Начиная с Java 8 эти методы точно есть.

#9
23:19, 13 мар. 2018

На самом деле есть ещё char, вот он беззнаковый изначально.

#10
23:31, 13 мар. 2018

Уходи с Java, по моему скромному мнению, на ней можно сидеть только ради LibGDX и Kotlin'a(сидеть на яп ради другого яп....)

#11
23:57, 13 мар. 2018

FlyOfFly
> Уходи с Java, по моему скромному мнению, на ней можно сидеть только ради LibGDX
> и Kotlin'a(сидеть на яп ради другого яп....)
Да на Java, по-моему, вообще только ради энтерпрайза имеет смысл сидеть.

#12
3:13, 14 мар. 2018

бросай эту дохлую лошадку и переходи на модерновый С++

#13
7:51, 14 мар. 2018

Можно я скажу? По поводу боли от писанины.

Писанина бывает разная, вообще как я думаю лучший код это такой код в котором легко разберется даже второклассник, то есть ИМХО всегда лучше написать строк больше, но понятный, чем короче но непонятный, а то ведь потом через год в собственном коде разобраться не сможете - мол чего это я тут такого понаписал :-O ... И комментариев никаких нет... И спросить не у кого ... И гуглить бессмысленно... Потому что сам же написал ... А чего и зачем написал уже не помню :'-(

PS Поэтому ИМХО лучше код  писать как Все -  ибо  чтобы  кто не говорил, но лучший код -  это Проверенная временем  и хорошо закоментированная Копипаста. Вот так вот.

#14
8:33, 14 мар. 2018

FlyOfFly
>Уходи с Java, по моему скромному мнению, на ней можно сидеть только ради LibGDX и Kotlin'a(сидеть на яп ради другого яп....)
Я на жабе ничего еще не писал, не считая лабораторных в универе, в свое время.

gamedevfor
>бросай эту дохлую лошадку и переходи на модерновый С++
Чем дольше пишу на крестах, тем больше едит крыша.

t800
> лучший код это такой код в котором легко разберется даже второклассник
Полностью поддерживаю, поэтому чем проще ЯП, тем лучше.
Вот например сейчас на работе пишу скрипты на сквиреле, чудо а не язык,
если бы еще средства разработки для него нормальные, да рантайм по-лучше,
давно забил бы на кресты.

Страницы: 1 2 3 4 5 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.