按照现在的文档例子引用另一个模块的函数, 比如从 react
引用 div
, 我就要写成 @react.div()
才行, 用于 DSL 的场景, 反复写这个包名有一些影响代码可读性. 是否有简写的语法可以直接绑定 div()
来使用?
目前只有enum constructor在能够被推导类型时,才可以省略包名。
对于使用另一个包的函数需要频繁声明包名的问题,后续可能会引入类似的功能:
use {div, h1} from @html
这个特性还待讨论
1 个赞
跟包名这个写法有点关联, 我觉得 Swift 这个语法挺有用的, 现在包名导致匹配写得很长, 即便去掉包名, variant 的名字可能还是需要从外部导入然后才能写, 并且也可能比较长. Swift 有一个语法在一些场景可以简化, 比如这个:
enum Barcode {
case upc(Int, Int, Int, Int)
case qrCode(String)
}
switch productBarcode {
case .upc(let numberSystem, let manufacturer, let product, let check):
print("UPC: \(numberSystem), \(manufacturer), \(product), \(check).")
case .qrCode(let productCode):
print("QR code: \(productCode).")
}
Moonbit 当中类型信息是挺丰富的, 是否能参考这个用法, 在已经推断到类型的位置, 通过一个语法直接提示选择填写 variant, 从而简化编码?
enum constructor已经是支持了省略包名和类型,让moonbit自己推导的,不需要写.
来暗示编译器
1 个赞
这个很实用. 引用的依赖的 construct 也正常导入了.
顺便问问对于其他比如参数等位置还有类似的简化写法的计划么. 看上去还有一些也支持了.
let wrap_event : RespoEvent = Focus(e)
labelled argument 这里也有, 但是自动补全不出来… 所以没注意到, 有点奇怪.