weekly 2024-05-27
MoonBit 周报 Vol.42:核心库进行API整理工作、工具链持续完善
MoonBit更新
- 【核心库 Breaking】核心库进行API整理工作
- 所有immutable数据结构被放在
immut
路径下,如@immutable_hashmap.Map
变为@immut/hashmap.Map
- 所有immutable数据结构被放在
// Before
let a : @immutable_hashmap.Map[Int, Int] = @immutable_hashmap.make()
// After
let a : @immut/hashmap.Map[Int, Int] = @immut/hashmap.make()
- 核心库中 Option[T] 类型性能优化
- 在类型 T 是一个引用类型情况下,对于 Option[T] 类型的值,
Some(v)
会被直接编译成v
,None
会在 wasm-gc 后端被编译成ref.null
,在 JavaScript 后端被编译成undefined
,从而避免内存分配
- 在类型 T 是一个引用类型情况下,对于 Option[T] 类型的值,
- 核心库中引入了
fn panic[T]() -> T
函数,这个函数可以用于在测试块中,其中测试的名字需要以"panic"
开头:
test "panic test ok" {
panic() // 测试通过
}
test "panic test failed" {
() // 测试失败
}