当前位置: 首页 > wzjs >正文

手机网站生成app软件企业网站搭建教程

手机网站生成app软件,企业网站搭建教程,遵义在线网站建设,临沂森工木业有限公司2025-04-21 语言更新 async 函数的调用处语法改为和 error 相同的 f!(..),原语法 f!!(..) 将触发警告 运算符重载的语义从基于方法迁移到了基于 trait,以后重载运算符需要通过给 moonbitlang/core/builtin 中对应的 trait 添加 impl 的形式。各个运算符…

2025-04-21

语言更新

  • async 函数的调用处语法改为和 error 相同的 f!(..),原语法 f!!(..) 将触发警告

  • 运算符重载的语义从基于方法迁移到了基于 trait,以后重载运算符需要通过给 @moonbitlang/core/builtin 中对应的 trait 添加 impl 的形式。各个运算符对应的 trait 可以参考语言文档和 @moonbitlang/core/builtin 中的 operators.mbt。迁移上:

    • 使用方法重载运算符的旧方式依然可用,但编译器会对此提出警告
    • op_xxx 系列方法改成对应 traitimpl 即可完成迁移
      • trait 对运算符的签名会有更严格的要求,例如 - 运算符的返回类型和参数类型必须相等。如果有签名不符合要求的运算符,这些 API 之后将不再能以运算符的形式提供,只能以普通方法的形式提供
    • 如果在 trait 中定义了 op_xxx 方法,可以删去这些方法,并将运算符对应的 trait 添加到 super trait 列表中,例如:
    // 旧的写法
    trait Number {from_int(Int) -> Selfop_add(Self, Self) -> Selfop_sub(Self, Self) -> Self
    }// 迁移后的新写法
    trait Number : Add + Sub {from_int(Int) -> Self
    }
    
  • trait 定义中,在方法声明后新增了一个 = _ 的标记,用于标记 trait 中的某个方法是否有默认实现,例如:

    trait Hash {hash_combine(Self, Hasher) -> Unithash(Self) -> Int = _ // 说明 `hash` 有默认实现
    }
    

    a. 如果一个方法有 = _ 的标记,它必须有对应的默认实现 impl Trait with some_method(..)。反之,如果一个方法有默认实现但没有 = _ 标记,编译器会提出警告。

    b. 这一新增的标记主要是为了提升源码的可读性。现在,从 trait 的定义即可直接看出各个方法是否有默认实现。那么,为什么不直接把默认实现的内容放到 trait 定义里呢?这是因为我们希望 trait 的定义本身尽可能短,这样在阅读时更容易完整获取方法列表和它们的类型签名信息。

  • 提供了从 String 类型到 @string.View 的隐式类型转换,并且恢复了使用 [:] 操作符来取一个完整的 view,对于通用的使用 [i:j] 取 view 的情况目前还在设计中。

    fn f(v : @string.View) -> Unit {ignore(v)
    }fn main {f("hello")f("world"[:])
    }
    
  • @string.View/@bytes.View 进行模式匹配时,允许直接匹配 string/bytes literal,如:

    test {let s = "String"inspect!(s.view(end_offset=3) is "Str", content="true")let s : Bytes = "String"inspect!(s[:3] is "Str", content="true")
    }
    
  • 【Breaking Change】Core 中的 @string 包 API 发生改动,参数类型由 String 迁移至 @string.View,返回值类型根据情况调整为了 @string.View,比较有代表性的改动如下:

旧方法签名新方法签名
self.replace(old~: String, new~: String) -> Stringself.replace(old~: View, new~: View) -> String
self.trim(charset: String) -> Stringself.trim(charset: View) -> View
self.split(substr: String) -> Iter[String]self.split(substr: View) -> Iter[View]
self.index_of(substr: String, from~: Int) -> Intself.find(substr: View) -> Option[Int]
self.last_index_of(substr: String, from~: Int) -> Intself.rev_find(substr: View) -> Option[Int]
self.starts_with(substr: String) -> Boolself.has_prefix(substr: View) -> Bool
self.ends_with(substr: String) -> Boolself.has_suffix(substr: View) -> Bool
  • Core 中的 Json 类型未来将改为 readonly,届时将不能使用该类型的 enum constructor,但作为替代提供了对应的辅助函数,如:
test {let num = Json::number(3.14)let str = Json::string("Hello")let obj = Json::object({ "hello": num, "world": str })
}

工具链更新

  • IDE 停止支持 moonbit: true Markdown 文件头
    • 现在只有 .mbt.md 拓展名会触发 Markdown 文件的 MoonBit IDE 支持
  • IDE 支持在 .mbt.md 中直接设置 debug 断点
    • 今后不再需要在 VSCode 设置中开启 Debug: Allow Breakpoint Everywhere 选项
  • moon.mod.json 中添加构建脚本 scripts 字段
    • 目前支持 postadd 脚本:如果一个模块中包含 postadd 字段,那么执行 moon add 之后会自动执行该脚本
      • 设置 MOON_IGNORE_POSTADD 环境变量可以忽略 postadd 脚本的执行
{"scripts": {"postadd": "python3 build.py"}
}
  • 优化 moon 工具的 .mbt.md 格式 Markdown 支持
    • moon check 命令执行时自动包含 Markdown 检查
    • moon test 命令执行时自动包含 Markdown 测试(未来该命令的 --md 选项将被移除)
http://www.dtcms.com/wzjs/599257.html

相关文章:

  • 东莞企业网站网站关键词排名优化方法
  • 穆棱市住房和城乡建设局网站企业年报网上申报系统
  • 怎么自己做网站的推广wordpress 手机版菜单
  • 建设银行人力资源系统网站怎么进潜力的网站设计制作
  • 给网站公司做网站系统下载网站源码
  • 长沙手机网站公司网站制作公司官网南京
  • 自适应网站开发资源张家港市凤凰镇建设局网站
  • 做内容网站赚钱吗网站建站网站建站
  • 怎么给网站做备份呢自适应网站的代表
  • 建设网站出什么科目域名备案需要网站搭建完成吗
  • 关于单位建设网站的申请wordpress发帖
  • 做牛津布面料在哪个网站找客户佛山网站建设在哪找
  • 网站建设维护实训总结怎样用自己的pid做搜索网站
  • 百度容易收录哪些网站散文网站模板
  • wordpress怎么做两个语言网站各大城市网站哪里做
  • 桌面软件开发跟网站开发那个网站设计师图片
  • 寿光做网站的公司宁晋网站建设网络公司
  • 晋江wap站是什么意思北京网站维护
  • 做网站横幅技巧高端网站设计公司排名
  • 遵义本地网站简单网站设计模板
  • 购物网站的模块logo设计网页
  • 什么是网站易用性西部网站建设
  • 2015年做哪些网站致富贵州网络公司网站建设
  • 青羊区网站建设公司检测软件定制
  • pt网站怎么做2023北京封控了
  • 泰安网站建设渠道网站的手机客户端怎样做
  • 做网站用vue吗怎么登录企业网站
  • 建设电商网站的代理行业门户网站
  • 设计网站大全有哪些网站放到云服务器上怎么做
  • 项目负责人质量建设厅官方网站中国白云手机网站建设