Код: Выделить всё
str< /code> - это строка, len < /code> - длина строки): < /p>
Подход 1 включает в себя дополнительный проход: < /p>
let roSpan = str.AsSpan()
let writeSpan = Span(Array.zeroCreate len)
roSpan.CopyTo writeSpan
< /code>
Подход 2 имеет слишком мало прохода (это превращает Readonlyspan в промежуток чтения /записи, опасные вещи): < /p>
let roSpan = str.AsSpan()
let writeSpan = MemoryMarshal.CreateSpan(&MemoryMarshal.GetReference roSpan, len)
< /code>
Я искал решения как C#, так и F#, но не смог найти хороший ответ. Один подход может быть с MemoryPool Подробнее здесь: https://stackoverflow.com/questions/622 ... n-one-pass
Мобильная версия