Size: a a a

2021 April 12

A

Alexander in ru.nim.talks
Т.е. они как бы есть, но передать их нельзя и происходит копирование
источник

M(

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

M(

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

M(

MIT/Yardanico (alt) in ru.nim.talks
openArray это и так "слайс" сам по себе
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
но с views его можно в типах юзать и т.д
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
{.experimental: "views".}

let a = "hello world"

let b = a.toOpenArray(0, 3)
for c in b:
 echo c
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
они кстати доступны и без views, но тогда их почти нигде нельзя юзать
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
но, к примеру, можно юзануть для того, чтобы без cast'ов строку в seq[char] перевести
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
let chars = @a.toOpenArray(0, a.len-1)
источник

A

Alexander in ru.nim.talks
не понятно как его вернуть
источник

M(

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

A

Alexander in ru.nim.talks
view/openArray
источник

M(

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

M(

MIT/Yardanico (alt) in ru.nim.talks
{.experimental: "views".}

proc retSlice(data: string): openArray[char] =
 result = data.toOpenArray(0, 3)


let str = "hello world"

let slice = str.retSlice()

echo slice
источник

M(

MIT/Yardanico (alt) in ru.nim.talks
с views openArray можно и в типах хранить
источник

VB

Vladimir Berezenko 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
вот пример
источник

VB

Vladimir Berezenko in ru.nim.talks
с копированием неинтересно. а без копирования кастануть можно?
источник