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

物流网站建设流程图企业网站定制

物流网站建设流程图,企业网站定制,wordpress门户加商城,photoshop设计一个精美的网站主页2025-03-10 语言更新 模式匹配支持守卫(Pattern Guard) 模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式,并且模式守卫为真的情况下才会执行。如果模式守卫为假,则会…

2025-03-10

语言更新

模式匹配支持守卫(Pattern Guard)

模式守卫可以通过在模式后追加 if ... 的语法结构来指定。有模式守卫的分支只有在被模式匹配的值满足对应模式,并且模式守卫为真的情况下才会执行。如果模式守卫为假,则会继续向下寻找能够被匹配的分支。

这个特性能够简化许多使用模式匹配的代码,以化简算术表达式为例:

fn simplify(e : Expr) -> Expr {match e {Add(e1, Lit(0)) => e1Sub(e1, e2) if e1 == e2 => Lit(0)//          ^^^^^^^^^^^ pattern guard_ => e}
}

模式守卫还可以配合 is 表示式使用来引入新的变量,例如:

fn json_get_key(json : Json, key : String) -> Json! {match json {Object(map) if map[key] is Some(value) => value_ => fail!("key not found: \{key}")}
}

支持 Attribute 语法

支持 Attribute 语法,用来代替原有的 @alert deprecated "message" 等 pragmas。每个 attribute 单独占用一行,attribute 内不允许换行。

目前支持的attribute:

  1. #deprecated("message"):声明该函数为 deprecated ,并且在使用处提示 message 中的内容。
  2. #coverage.skip:声明该函数不计入覆盖率测试。
    我们后续将会移除旧的 pragmas 语法。
#deprecated("use function g instead")
#coverage.skip
fn f() -> Unit {...
}

Bytes 类型支持使用字符串字面量进行初始化和赋值

Bytes 类型支持使用字符串字面量进行初始化和赋值。该字符串会以 UTF-8 编码的形式存储为一个 Bytes 。例如:

fn main {let xs : Bytes = "123"let ys : Bytes = "你好,世界"
}

enum 支持自定义 tag 值

enum 支持自定义 tag 值,这在绑定 Native 的 C FFI 时非常有用。以 open 这个 syscall 为例:

enum OpenFlag {O_RDONLY = 0x00O_WRONLY = 0x01O_RDWR   = 0x02
}extern "c" fn open(path : Bytes, flag : OpenFlag) -> Int = "open"test {let path : Bytes = "tmp.txt"let fd = open(path, O_RDONLY)
}

增强了常量(const)声明的表达能力

const 新增支持:

  • 引用其他常量
  • 内建类型的其四则运算、位运算和比较运算

例如:

const A : Int = 1 + 2 * 3
const B : Int = A * 6

Deprecate 通过方法隐式实现 trait 的行为

通过方法隐式实现 trait 的行为现已 deprecate。如果需要为一个类型实现一个 trait ,需要通过显示的 impl 构造来实现。

// 为 T 隐式实现 Show (deprecated)
fn T::output(self : T, logger : &Logger) -> Unit {...
}// 你应该迁移到如下的显示实现
impl Show for T with output(Self : T, logger : &Logger) -> Unit {...
}

移除了直接调用形如 fn T::f(…) 的行为

移除了直接调用形如 fn T::f(…) 的行为。该行为之前已通过警告的形式 deprecate。未来,形如 fn f(self : T, ..) 的方法可以当成普通函数使用,而形如 fn T::f(..)的方法只能用 T::f(..) 的形式或 x.f(..) 语法调用。新语义的更多细节见 https://github.com/moonbitlang/core/pull/1472

单独拆分 Native 后端部分 runtime

Native 后端的一部分 runtime 拆出来到单独的 C 文件里面了。该 C 文件位于 $MOON_HOME/lib/runtime.c。如果你使用了非标准的构建方式,比如自己通过调用 C 编译器编译生成出来的 C 文件,需要注意在编译的时候加入该 C 文件。

在 bleeding 版本的工具链上面发布 LLVM 后端

我们在 bleeding 版本的工具链上面发布了我们的 LLVM 后端。目前我们的 LLVM 后端只支持了 x86_64 Linux 和 ARM64 macOS 平台。这两个平台上可以通过如下 bash 命令安装 bleeding 版本的 moon 。

curl -fsSL https://cli.moonbitlang.com/install/unix.sh | bash -s 'bleeding'

然后就可以在构建、测试和运行的时候,通过向 moon 传入 --target llvm 的选项来使用 LLVM 后端。例如:

moon build --target llvm

构建系统更新

  1. 新增 moon check --explain ,能够输出关于某个 error code 的详细信息。
    在这里插入图片描述

  2. moon.pkg.json中新增 "native-stub" 配置项用来声明当前包用到的 C stub 文件。在构建时,这些 stub 会被构建并连接到当前包的产物中。如果你的项目是把 C stub 文件写在 cc-flags 中,现在可以将这些 C stub 文件声明在 "native-stub" 字段中

  3. 放松了 moon publish 必须要通过 moon check 的要求。如果 check 失败,会询问用户是否坚持发布。

IDE 更新

  1. Markdown 中内嵌的 MoonBit 代码块支持格式化。用户可以通过选择 MoonBit 插件来格式化含有 MoonBit 的 Markdown 。

在这里插入图片描述

http://www.dtcms.com/wzjs/251954.html

相关文章:

  • 成都做网站设计公司价格权威seo技术
  • 服务器架设国外做违法网站深圳网络公司推广平台
  • 手机游戏网站建设莆田网站建设优化
  • 杭州网站建设官方蓝韵网络金城武重庆森林经典台词
  • 用vs做的网站怎么打开朝阳网络推广
  • 手机网站开发 宽度广告公司联系方式
  • 太原专业制作网站杭州网站推广找哪家
  • 龙岗附近网站建设代写
  • 泉州专业网站制作公司推广引流app
  • wordpress 帕兰映像 安装教程 wordpress金华seo全网营销
  • 做网站都得会什么技术广告公司网站制作
  • 易讯网站建设丁的老头seo博客
  • 网站总是在建设中手机访问另一部手机访问文件
  • 自驾游网站建设百度整站优化
  • 建设银行福建分行招聘网站互联网营销主要学什么
  • app推广公司广州seo代理计费
  • 软件下载平台哪个好36优化大师下载安装
  • 怎样做微课网站百度指数使用指南
  • 微商网站怎么做免费网站免费
  • 东莞网站建设方案网站seo站群软件
  • 服务好的网站建设平台黑科技引流工具
  • 杭州营销网站建设公司重庆百度竞价开户
  • 金融行业建设网站广州网站优化服务
  • 国家信息企业公示系统全国东莞seo网站优化排名
  • 具有价值的常州做网站山东济南最新事件
  • 企业网站建设费怎么记账中小型企业网站设计与开发
  • 做杂志的模板下载网站有哪些销售清单软件永久免费版
  • 做租凭网站是经营性吗厦门seo收费
  • wap网站什么意思怎么建自己的网站?
  • 做金融的免费发帖的网站有哪些合肥网络推广优化公司