Есть ли простой способ преобразовать ссылку Array [U8] в строку в пони? - PullRequest
0 голосов
/ 26 августа 2018

Я медленно проходил через https://github.com/aturley/pony-workshop/, и при выполнении последнего упражнения в 04 хотел преобразовать непересылаемый массив [U8] ref в строку. Это привело меня к:

actor Main
  let _buffer : Array[U8] = ['a'; 'b'; 'c']

  new create(env: Env val) =>
    let b1 : Array[U8] iso = []
    for v in _buffer.values() do
      b1.push(v)
    end
    env.out.print("Got '" + String.from_iso_array(consume b1) + "'")

https://playground.ponylang.org/?gist=e7170e1f8ba2f89655279d5cd8e86e37

Я немного недоволен этим, потому что я хотел бы сделать что-то вроде 'deep_clone ()' для массива, чтобы получить iso ... но в его нынешнем виде я даже не могу добавить работать (из-за вызова ссылки с неотправляемым параметром).

Я решил проблему другим (более приятным) способом (используя chop), но все же хотел бы понять, возможно ли сделать более чистую копию массива.

...