[Help] 开发过程中碰到了一些问题,希望能解答

  1. String 是否支持预分配空间,并支持修改,看起来是不行
  2. 支持类似 String.fromCodePoint() - JavaScript | MDN 的 API 么,需要知道 code point,然后转成字符,目前解决办法是手写了一个 128 长度的 map,但这样更多的字符就不支持了。
  3. 给一个 String(含 unicode) 支持转成 uint8 的数组么
  1. 不行,String是Immutable的,如果你需要从底层操作字符串,可以使用Bytes
  2. 你可以使用Char::from_int(65).to_string()
  3. 你可以使用Buffer::to_bytes这是个新增加的API,这可能需要等到新版本才能使用
let b = Buffer::make(0)
b.write_string("hello")
b.to_bytes()

或者你可以使用 Bytes::set_utf16_char / Bytes::set_utf8_char 手动实现

好的,了解了,我下班回去试下,十分感谢。

另外想问下这个 Char 和 Buffer 的方法目前文档里可以找到么。

Moonbit docs 理论上都在这里,不过现在页面有待优化

哦哦哦,Char 的 Moonbit docs 我有翻过这里,但好像也没有

那很可能在builtin里。我们之后会逐渐拆出来。

哦哦哦 好的,十分感谢