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

双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配

双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配

在这里插入图片描述

更新目录

  • ..调用链末尾自动丢弃值语义变更
  • 字段级文档注释支持
  • 视图类型现为值类型,减少内存分配
  • 特效函数调用现支持样式高亮
  • 实验性支持虚拟包,接口与实现解耦

语言更新

1、..调用链末尾自动丢弃值语义变更

x..f(..) 的语义即将发生改变,在 ./.. 调用链末尾的最后一个 .. 以后会自动丢弃它的值。因此,下面的代码:

impl[X : Show, Y : Show] Show for (X, Y) with output(self, logger) {logger..write_string("(")..write_object(self.0)..write_string(", ")..write_object(self.1)// 原本,这里必须写 `.`,否则整个 `.` 链的类型是 `&Logger`,不符合预期类型 `Unit`.write_string(")")
}

以后可以简化成

impl[X : Show, Y : Show] Show for (X, Y) with output(self, logger) {logger..write_string("(")..write_object(self.0)..write_string(", ")..write_object(self.1)// 以后可以直接一路 `..` 到底了..write_string(")")
}

但这也意味着直接使用 x..f() 的值的用法将会被废弃,需要显式保存x。例如,下面的代码:

let arr = []..push(1)..push(2)

需要改写成:

let arr = []
arr..push(1)..push(2)

2、字段级文档注释支持

枚举构造器和结构体的字段支持单独的文档注释,在补全时会显示相应的文档。

///| Location enum
struct Location {/// X coordinatex : Int/// y coordinatey : Int
}///| Variant enum
enum Variant {/// Stirng constructorString(String)/// Number constructorNumber(Double) 
}

3、视图类型现为值类型,减少内存分配

@bytes.View@string.View 在 C 和 wasm1 后端现在会被编译成值类型,这意味着这两个类型不会引入内存分配,性能有较大提升。

工具链更新

1、特效函数调用现支持样式高亮

vscode 插件支持semantic token, 会对有effect的函数(会抛出异常的函数, 异步函数)调用使用不同的样式高亮。

2、实验性支持虚拟包,接口与实现解耦

构建系统支持 virtual package 特性,通过将一个 package 声明为虚拟包,定义好一套接口,用户可选择具体使用哪一份实现,如不指定则使用该虚拟包的默认实现。

通过这项特性,给分离接口与实现带来较大灵活性。注意:目前这项特性处于实验性状态。详情请查看:MoonBit 新特性:Virtual Package 虚拟包机制

3、单文件测试调试功能上线

支持对于单个 .mbt 和 .mbt.md 文件的 test 和 debug codelen

相关文章:

  • Python网络爬虫入门指南
  • 【CodeBuddy 】从0到1,让网页导航栏变为摸鱼神器
  • 视图+触发器+临时表+派生表
  • 用于判断主子关系的方法的实现(orm是efcore)
  • [特殊字符] Word2Vec:将词映射到高维空间,它到底能解决什么问题?
  • 深入解析OkHttp与Retrofit:Android网络请求的黄金组合
  • 蓝桥杯1447 砝码称重
  • Python 实例传递的艺术:四大方法解析与最佳实践
  • 用 RefCounted + WeakPtr 构建线程安全的异步模块
  • 【OpenCV基础2】图像运算、水印、加密、摄像头
  • 如何在 Windows 11 或 10 上安装 FlutterFire CLI
  • CSS提高性能的方法有哪些
  • C++面试4-sizeof解析
  • RabbitMQ的简介
  • C 语言学习笔记(函数2)
  • AI在网络安全中的应用之钓鱼邮件检测
  • Python列表 vs 元组:全面对比解析(新手友好版)
  • MYSQL8.0常用窗口函数
  • input组件使用type=“number“的时候,光标自动跳到首位
  • 【Tools】VMware Workstation 17.6 Pro安装教程
  • 讲述“外国货币上的中国故事”,《世界钱币上的中国印记》主题书刊出版发布
  • 去年中企海外新增风电装机量5.4GW,亚太区域占比过半
  • 外汇局:4月下旬外资投资境内股票转为净买入
  • 抖音开展“AI起号”专项治理,整治利用AI生成低俗猎奇视频等
  • 盲人不能刷脸认证、营业厅拒人工核验,央媒:别让刷脸困住尊严
  • 《缶翁的世界》首发:看吴昌硕王一亭等湖州籍书画家的影响