自学内容网 自学内容网

MoonBit 双周报 Vol.57:AI助手功能增强、表达式优先级调整、JS 交互优化、标准库与实验库API多项更新!

2024-10-08

IDE更新

  • AI Codelens支持 /generate/fix 命令

/generate 命令能够提供一个通用的用以生成代码的聊天界面。

在这里插入图片描述

/fix 命令能够读取当前函数的错误信息给出修复建议。

在这里插入图片描述

MoonBit更新

  • 调整中缀表达式和ifmatchloopwhilefortry表达式的优先级, 后者这些控制流表达式不再能够直接出现在要求是中缀表达式的位置,嵌套使用时需要增加一层括号。

例如ifmatch的语法是:

if <infix-expr> { <expression> } [else { <expression> }]
match <infix-expr> { <match-cases> }

因为ifmatchloopwhilefortry 都不再属于infix-expr, 因此if if expr {} {}这种代码不是合法的:

//invalid
if if cond {a} else {b} {v} else {d}
match match expr { ... } { ... }
let a = expr1 + expr2 + if a {b} else {c} + expr3
//valid
if (if cond {a} else {b}) {v} else {d}
match (match expr { ... }) { ... }
let a = expr1 + expr2 + (if a {b} else {c}) + expr3
  • js后端

    • 现在Array会编译到 js 的原生数组,和 js 交互更加方便
  • 标准库API

    • String包增加concat, from_array函数,弃用Array::join
    • immut/list包增加rev_concat()
    • Buffer类型增加lengthis_empty 函数
    • 改进了Option类型的to_json函数
  • 实验库API

    • x/fs 包支持 wasm, wasm-gc, js 后端,包含以下 api
      • write_string_to_file, write_bytes_to_file
      • read_file_to_string, read_file_to_bytes
      • path_exists
      • read_dir
      • create_dir
      • is_dir, is_file
      • remove_dir, remove_file

构建系统更新

  • moon test -p 支持模糊匹配功能,例如 moon test -p moonbitlang/core/builtin 可简写为 moon test -p mcb | moon test -p builtin 等。

  • moon.pkg.json 中的 source 字段为空字符串""时,等价于 ".",表示当前目录。

moondoc更新

文档生成器支持package层级的README文件,所有moon.pkg.json 同级的README.md会被一同显示在这个包的文档页面中。


原文地址:https://blog.csdn.net/m0_74743788/article/details/142765400

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!