Size: a a a

2021 May 19

VB

Vladimir Berezenko in ru.nim.talks
надо подумать. хз почему так
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Тебе нужен hash для Button
источник

VB

Vladimir Berezenko in ru.nim.talks
напиши, кстати :)
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
источник

g

gavr in ru.nim.talks
я про это и спрашивал, как мне сделать hash для button если в button нет ничего уникального, мне нужно шоб hash был по ссылке или типа того
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Ну так ref это и есть ссылка
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
По ней и сделай
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Одного cast в int хватит, вот тебе и уникальный хеш
источник

g

gavr in ru.nim.talks
хм, действительно, спасибо
источник

g

gavr in ru.nim.talks
но в принципи этот бойлерплейт можно былоб оптимизиовать
источник

g

gavr in ru.nim.talks
главное шоб гц не по перемещал, если он перемещающий
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Ну немного неправильно
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Посмотри как тут хеш завершается
источник

M(

MIT/Yardanico (alt) in ru.nim.talks

proc hash(x: Button): Hash =
 var h: Hash = cast[int](x)
 result = !$h


Надо что-то типа такого
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Иначе хеш будет намного медленнее работать, конечно с десятками кнопок это не заметно
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Но все равно
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
А, вообще ещё лучше скопировать код из самого модуля, там есть реализация для указателя
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
result = cast[Hash](cast[uint](x) shr 3)
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
И все, одна строчка
источник

g

gavr in ru.nim.talks
хмм, не понял чем !$ ускоряет, по доке кажется это шоб завершить кеши которые до этого насуммировали
источник