查看原文
科技

MoonBit 周报 Vol.47:enum构造器简化,多个板块持续更新!

MoonBit 运营组 MoonBit 2024-07-01



-- 更新目录 --

  • 简化 enum 构造器使用

  • 添加 UInt64 内建类型

  • 修改 !! 后缀语义

  • moon test 支持错误类型

  • 标准库 I/O 更新




🐰 MoonBit更新


1.简化 enum 构造器使用

在没有歧义的情况下,enum构造器的使用无需类型前缀比如现在可以直接使用Some(42)而不需要写 Option::Some(42);如果当前环境中有两个类型 T1T2 都定义了某个构造器 C,那么在使用的时候则需要通过上下文中的类型或者类型前缀指明是 T1::C 还是 T2::C,否则编译器会报错

2.添加 UInt64 内建类型

添加 UInt64 内建类型,支持加、减、乘、除、模和 UInt64/ Int64 的互相转换
fn main{
    let 0UL
    let : UInt64 = 1UL
    println(a - b)//18446744073709551615
}
3.修改!! 后缀

将 !! 后缀的语义修改为捕获函数调用中可能出现的错误,并返回 Result 类型,比如
fn f() -> Int!String {..}
fn main {
    let res = f()!! // res: Result[Int, String]
    println(res)
}

4.moon test 支持错误类型

moon test 中支持使用错误类型表示测试失败的情况,比如
fn eq[T : Debug + Eq](a : T, b : T, ~loc :SourceLoc= _) -> Unit!String {
    if a != b {
        let a = debug_string(a)
        let b = debug_string(b)
        raise ("FAILED: \(loc) `\(a) == \(b)`")
    }
}

test "test_eq" {
    eq(1+2, 3)!
}

5.标准库I/O更新

标准库中的 I/O 相关操作只保留 println,其余将会在 io package 中提供


🐰 标准库(moonbitlang/core)更新 


1.统一标准库函数风格


统一T::new()/T::make()等创建容器对象的函数风格, 移除了T::with_capacity

2.迭代器重命名

原先的iter 和iteri重命名为 each 和eachiiter_rev  iter_revi 重命名为 each_rev 和eachi_rev

3.as_iter 重命名为iter


🐰 构建系统更新

构建系统预计将于本周开源


🐰 工具链更新


1.优调试体验
现在⽤户可在 JavaScript Debug Terminal 中执⾏ moon run --target js --debug 进调试

2.moon info和覆盖率工具适配错误类型和错误处理


官方平台账号,欢迎扫码关注


MoonBit


官网moonbitlang.cn知乎|@张宏波 / @MoonBit小红书|MoonBit月兔
Twitter丨@MoonbitlangBilibili丨MoonBit月兔MoonBit用户交流群|添加小助手moonbit_helper ➕🌟 关注  🍉 分享  👀 在看 一键三连 ~

关于 MoonBit :MoonBit 是国内首个工业级编程语言及其配套工具链MoonBit(https://www.moonbitlang.cn/)是由粤港澳大湾区数字经济研究院(简称“IDEA 研究院”)基础软件中心打造的AI原生的编程语言以及开发者平台。通过创新框架在程序语言界形成后发优势,在编译速度、运行速度、体积大小上已成功领先传统语言。


   ⬇点击阅读原文 

   下载 MoonBit,开启 MoonBit 语言新体验



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存