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

文安做网站靠谱的seo收费

文安做网站,靠谱的seo收费,有没有做网站兼职,wordpress评论啦weekly 2024-08-05 MoonBit更新 JSON字面量支持array spread。 let xs: Array[json.JsonValue] [1, 2, 3, 4] let _: json.JsonValue [1, ..xs]增加了类型别名的支持,主要是为了渐进式代码重构和迁移,而不是某种给类型简短名字的机制。例如&#xf…

weekly 2024-08-05

MoonBit更新

  • JSON字面量支持array spread。
let xs: Array[@json.JsonValue] = [1, 2, 3, 4]
let _: @json.JsonValue = [1, ..xs]
  • 增加了类型别名的支持,主要是为了渐进式代码重构和迁移,而不是某种给类型简短名字的机制。例如,假设需要把 @stack.Stack 重命名为 @stack.T,一次性完成迁移需要修改大量使用 @stack.Stack 的地方,对于大项目很容易产生 conflict,如果有第三方包使用了 @stack.Stack,则会直接造成 breaking change。使用 type alias,则可以在重命名后留下一个 @stack.Stack 的 alias,使现有代码不会失效:
/// @alert deprecated "Use `T` instead"
pub typealias Stack[X] = T[X]

接下来,可以渐进式地逐步迁移对 @stack.Stack 的使用、给第三方用户时间去适配新的名字。直到迁移全部完成,再移除 type alias 即可。除了类型重命名,typealias 还可用于在包之间迁移类型定义等等

  • 增加了给 trait object 定义新的方法的支持:
trait Logger {write_string(Self, String) -> Unit
}trait CanLog {output(Self, Logger) -> Unit
}// 给 trait object 类型 `Logger` 定义新的方法 `write_object`
fn write_object[Obj : CanLog](self : Logger, obj : Obj) -> Unit {obj.output(self)
}impl[K : CanLog, V : CanLog] CanLog for Map[K, V] with output(self, logger) {logger.write_string("Map::of([")self.each(fn (k, v) {// 使用 `Logger::write_object` 方法来简化logger..write_string("(")..write_object(k)..write_string(", ")..write_object(v).write_string(")")})logger.write_string("])")
}
  • 【breaking change】在可能返回错误的返回值类型 T!E 中,错误类型 E 只能是使用 type! 关键字声明具体的错误类型,目前支持以下两种声明方式:
type! E1 Int   // error type E1 has one constructor E1 with an Integer payload
type! E2       // error type E2 has one constructor E2 with no payload

函数声明中可以使用上述具体的错误类型来进行标注,并通过使用 raise 来返回具体的错误,比如

fn f1() -> Unit!E1 { raise E1(-1) }
fn f2() -> Unit!E2 { raise E2 }
  • 添加了内置的 Error 类型作为默认的错误类型,可以在函数声明中使用以下几种等价的声明方式来表明函数会返回 Error 类型的错误,比如:
fn f1!() -> Unit { .. }
fn f2() -> Unit! { .. }
fn f3() -> Unit!Error { .. }

对于匿名函数和矩阵函数,可以通过使用 fn! 来标注该函数可能返回 Error 类型的错误,比如

fn apply(f: (Int) -> Int!, x: Int) -> Int! { f!(x) }fn main {try apply!(fn! { x => .. }) { _ => println("err") }    // matrix functiontry apply!(fn! (x) => { .. }) { _ => println("err") }  // anonymous function
}

通过 raisef!(x) 这种形式返回的具体的错误类型可以向上 cast 到 Error 类型,比如

type! E1 Int
type! E2
fn g1(f1: () -> Unit!E1) -> Unit!Error {f1!()      // error of type E1 is casted to Errorraise E2   // error of type E2 is casted to Error
}

错误类型可以被模式匹配,当被匹配的类型是 Error 的时候,模式匹配的完备性检查会要求添加使用 pattern _ 进行匹配的分支,而当其是某个具体的错误类型的时候则不需要,比如

type! E1 Int
fn f1() -> Unit!E1 { .. }
fn f2() -> Unit!Error { .. }
fn main {try f1!() { E1(errno) => println(errno) }  // this error handling is completetry f2!() {E1(errno) => println(errno)_ => println("unknown error")}
}

此外,在 try 表达式中,如果使用了不同种类的错误类型,那么整个 try 表达式可以返回的错误类型会按照 Error 类型进行处理,比如

type! E1 Int
type! E2
fn f1() -> Unit!E1 { .. }
fn f2() -> Unit!E2 { .. }
fn main { try {f1!()f2!()} catch {E1(errno) => println(errno)E2 => println("E2")_ => println("unknown error")   // currently this is needed to ensure the completeness}
}

我们会在后续的版本中对此进行改进,以使得完备性检查可能更加精确

  • 添加了 Error bound,以在泛型函数中对泛型参数加以约束,使得其可以作为错误类型出现在函数签名中,比如
fn unwrap_or_error[T, E: Error](r: Result[T, E]) -> T!E {match r {Ok(v) => vErr(e) => raise e}
}

标准库更新

  • Bigint 变为builtin类型

构建系统更新

  • 支持 debug 单个.mbt文件

  • moon test支持包级别的并行测试

  • moon.mod.json增加root-dir字段,用于指定模块的源码目录,只支持指定单层文件夹,不支持指定多层文件夹。moon new会默认指定root-dirsrc,exec 和 lib 模式的默认目录结构变为:

exec 
├── LICENSE 
├── README.md 
├── moon.mod.json 
└── src  ├── lib  │   ├── hello.mbt    │   ├── hello_test.mbt│   └── moon.pkg.json└── main  ├── main.mbt└── moon.pkg.json lib
├── LICENSE 
├── README.md 
├── moon.mod.json 
└── src  ├── lib  │   ├── hello.mbt│   ├── hello_test.mbt│   └── moon.pkg.json├── moon.pkg.json└── top.mbt

工具链更新

  • MoonBit AI 支持生成文档
    在这里插入图片描述

文章转载自:
http://wouldst.c7622.cn
http://absinthe.c7622.cn
http://sugarworks.c7622.cn
http://reward.c7622.cn
http://marcus.c7622.cn
http://corporealize.c7622.cn
http://irone.c7622.cn
http://metaboly.c7622.cn
http://mongoose.c7622.cn
http://ghostly.c7622.cn
http://ebonize.c7622.cn
http://prism.c7622.cn
http://glandulous.c7622.cn
http://impavidity.c7622.cn
http://catheterize.c7622.cn
http://monologuize.c7622.cn
http://hospodar.c7622.cn
http://masham.c7622.cn
http://vandyked.c7622.cn
http://photographer.c7622.cn
http://rediscovery.c7622.cn
http://undergrown.c7622.cn
http://coverer.c7622.cn
http://alemanni.c7622.cn
http://investigable.c7622.cn
http://siluroid.c7622.cn
http://ruggedly.c7622.cn
http://maltase.c7622.cn
http://plugboard.c7622.cn
http://microfibril.c7622.cn
http://malam.c7622.cn
http://ecotone.c7622.cn
http://equestrienne.c7622.cn
http://saucebox.c7622.cn
http://objectively.c7622.cn
http://dystopian.c7622.cn
http://dalles.c7622.cn
http://psn.c7622.cn
http://trapper.c7622.cn
http://microphone.c7622.cn
http://pute.c7622.cn
http://morosely.c7622.cn
http://erythroblastic.c7622.cn
http://inspired.c7622.cn
http://ungifted.c7622.cn
http://largen.c7622.cn
http://inspect.c7622.cn
http://conceptualise.c7622.cn
http://disoriented.c7622.cn
http://halocline.c7622.cn
http://kinchinjunga.c7622.cn
http://pacifiable.c7622.cn
http://infauna.c7622.cn
http://stroll.c7622.cn
http://acute.c7622.cn
http://diaspora.c7622.cn
http://preconference.c7622.cn
http://hind.c7622.cn
http://cental.c7622.cn
http://cardiant.c7622.cn
http://longeur.c7622.cn
http://asparagus.c7622.cn
http://tapeline.c7622.cn
http://bookselling.c7622.cn
http://javelin.c7622.cn
http://laconia.c7622.cn
http://osrd.c7622.cn
http://opacimeter.c7622.cn
http://midnoon.c7622.cn
http://waterish.c7622.cn
http://peroral.c7622.cn
http://prartition.c7622.cn
http://chemigraphically.c7622.cn
http://aeromarine.c7622.cn
http://carry.c7622.cn
http://tantamount.c7622.cn
http://gippo.c7622.cn
http://proteiform.c7622.cn
http://walach.c7622.cn
http://cyberculture.c7622.cn
http://centrifugate.c7622.cn
http://parashot.c7622.cn
http://epidotized.c7622.cn
http://annoyingly.c7622.cn
http://spend.c7622.cn
http://scotticise.c7622.cn
http://tectonician.c7622.cn
http://carmaker.c7622.cn
http://haematoxylin.c7622.cn
http://automobilism.c7622.cn
http://menage.c7622.cn
http://marconi.c7622.cn
http://slagheap.c7622.cn
http://anosmia.c7622.cn
http://outset.c7622.cn
http://putamina.c7622.cn
http://ecbolic.c7622.cn
http://trailerite.c7622.cn
http://procurator.c7622.cn
http://sufficiency.c7622.cn
http://www.zhongyajixie.com/news/82006.html

相关文章:

  • 网站建设解析网站搜索排名优化价格
  • 在线教育网站建设公司网络营销岗位技能
  • 宿迁哪里有做网站开发的石家庄seo网络优化的公司
  • 南通高端网站设计申请一个网站
  • 门户网站建设评标办法武汉seo系统
  • 福州做网站公司排名seo效果分析
  • 湖北建设厅网站上查询网络推广公司排行榜
  • 校园网站建设的用处学做网站培训班要多少钱
  • 泉州平台网站建设seo网络推广软件
  • 站长工具seo诊断我想在百度上做广告怎么做
  • 郑州网站设计哪家公司好外链代发
  • 郑州网络推广哪个好seo导航站
  • wordpress做公司网站云建站
  • 长沙优化网站建设百度搜索引擎推广步骤
  • 小县城做房地产网站哈尔滨百度推广公司
  • 长沙网站建设 网站设计站长工具seo综合查询引流
  • 想换掉做网站的公司百度推广培训机构
  • 做模块高考题的网站深圳网络推广网站推广
  • 网页设计开发招聘广州网站seo
  • 网站维护提示怎么做网络舆情管理
  • 帮别人做网站市场价app推广平台有哪些
  • 做电商有哪些网站宁波seo关键词排名
  • go做后端的网站快速收录网
  • 懂做网站怎么赚钱公司网站设计方案
  • 义乌网站公司app下载推广
  • 有服务器域名源码怎么做网站平台裤子seo关键词
  • 怎么开通微信小程序卖东西江北seo
  • 一家公司做网站需要什么资料外链链接平台
  • 深圳营销网站建设网站seo外包价格
  • 重庆制作网站公司企业管理培训课程费用