Size: a a a

2021 April 06

M(

MIT/Yardanico (alt) in ru.nim.talks
т.к. ref object of RootObj и ref object of RootRef оба работают
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
но почти всегда юзается RootObj
источник

g

gavr in ru.nim.talks
ррррр
источник

g

gavr in ru.nim.talks
шож все так запутано, а дерефер юзается в обычной жизни?
источник

g

gavr in ru.nim.talks
тут же и так вроде бы типы делятся на value и reference
источник

g

gavr in ru.nim.talks
зачем еще deref?
источник

g

gavr in ru.nim.talks
если обращение к полям ref типа и так неявный deref
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
так я же тебе показал
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
к примеру для echo
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
для изменения всего объекта сразу
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
type
 PersonObj = object
   name: string
 Person = ref PersonObj

var p = Person()
p[] = PersonObj(name: "hello")
источник

g

gavr in ru.nim.talks
а просто
p = PersonObj(name: "hello")
тут его не изменит?
источник

M(

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

M(

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

g

gavr in ru.nim.talks
а шо оно сделает
источник

M(

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

M(

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

M(

MIT/Yardanico (alt) in ru.nim.talks
/home/dian/Projects/GitMaster/tast.nim(7, 14) Error: type mismatch: got 'PersonObj' for 'PersonObj(name: "hello")' but expected 'Person = ref PersonObj'
источник

g

gavr in ru.nim.talks
лааадно, окей, вроде валидно, тут мы уже как бы меняем тип объекта по сути
источник

g

gavr in ru.nim.talks
с value на reference
источник