T?
来表示Option[T]
struct Cell[T] {
val: T
next: Cell[T]?
}
fn f(x : Cell[T]?) -> Unit { ... }
相当于
struct Cell[T] {
val: T
next: Option[Cell[T]]
}
fn f(x : Option[Cell[T]]) -> Unit { ... }
旧的Option[T]
仍然兼容,但是推荐使用更简短的新语法。moonfmt 也会将Option[T]
格式化为T?
。
Iter[T]
不需要@iter.
前缀pub fn any[T](xs : Iter[T], predicate : (T) -> Bool) -> Bool {
// ^不需要 @iter.
match xs.find_first(predicate) {
None => false
Some(_) => true
}
}
Stack
包被移入moonbitlang/x
。to_list
和from_list
函数。对于数据结构间转换和中间的表示结构,推荐使用Iter[T]
与Array[T]
。Option[Bool]
, Option[Char]
, Option[Byte]
, Option[Unit]
这些类型使用 32 位整数表示,其中 None
对应的值为 -1, Some(x)
对应的值为 x
; Option[Int]
类型在 wasm 后端使用 64 位整数表示,其中 None
对应的值为 0x1_0000_0000
, Some(x)
对应的值为 x
, Option[Int]
在 JavaScript 后端使用 int | undefined
表示,其中 undefined
表示 None
abort
行为变更spectest.print_char
的依赖,正在重构错误输出功能。abort
将不会利用spectest.print_char
打印错误信息,行为与panic
相同,等待功能进一步完善。这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.