Size: a a a

2021 March 03

VB

Vladimir Berezenko in ru.nim.talks
Не, не так, там хитрее немного
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Kitsune Digital
В мане нихуя не сказано о том как оно в памяти лежит
Ну это так-то деталь реализации)
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
в старом рантайме - длина, capacity (размер выделенного буфера), указатель на данные
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
В новом - длина и указатель на структуру с capacity и данными строки
источник

KD

Kitsune Digital in ru.nim.talks
а шо будет если я сделаю ref string?
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
А што должно быть?
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Будет строка с ref семантикой
источник

KD

Kitsune Digital in ru.nim.talks
double indirect?
источник

M(

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

VB

Vladimir Berezenko in ru.nim.talks
Зато можно сделать ref string = null :)
источник

M(

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

type
 NimStrPayload {.core.} = object
   cap: int
   data: UncheckedArray[char]

 NimStringV2 {.core.} = object
   len: int
   p: ptr NimStrPayload ## can be nil if len == 0.


Вот для нового рантайма
источник

KD

Kitsune Digital in ru.nim.talks
Vladimir Berezenko
Зато можно сделать ref string = null :)
вот ради этого у меня появились ёбанные ref float сука
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
https://github.com/nim-lang/Nim/blob/devel/lib/system/strs_v2.nim#L12

Первый тип это другое немного
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
Kitsune Digital
вот ради этого у меня появились ёбанные ref float сука
А чего не options тогда? Если хочется пустые значения
источник

VB

Vladimir Berezenko in ru.nim.talks
Kitsune Digital
вот ради этого у меня появились ёбанные ref float сука
Юзай Option[float] - так козырнее.
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
и да,  до 0.19.0 строки и последовательности были nil по умолчанию
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
И можно было индексировать нуль терминатор в строках
источник

KD

Kitsune Digital in ru.nim.talks
Vladimir Berezenko
Юзай Option[float] - так козырнее.
DEADBEEF не получится 😉
источник

VB

Vladimir Berezenko in ru.nim.talks
Жаль что примитивные типы не nullable
источник

KD

Kitsune Digital in ru.nim.talks
а, там ж ptr а не реф
источник