【发布时间】:2017-01-15 18:10:25
【问题描述】:
作为一名使用 Swift 编码的 iOS 开发人员,我发现必须将使用 Swift 编写的相同代码与使用 JavaScript 编码的前端开发人员协调起来越来越烦人。在一个地方实现通用功能,然后翻译成 JS 会更整洁,对吧?
我开始怀疑 Swift to JS 编译器是否可行?也许不分享完整的代码,但至少有一些通用的常用功能。
我在网上找到了这个转译器:SwiftJS。可悲的是,这个并没有真正削减它。
以下代码:
let a = [1, 2]
print(a.count)
在演示中返回 Invalid Swift code。这不会灌输信心。不要介意更复杂的部分,比如可选或函数重载。
我想开始一个转译器项目,但后来我意识到有很多陷阱。例如这段代码:
var a = [1, 2]
var b = a
b.append(3)
应该使a 等于[1, 2] 和b 等于[1, 2, 3]。在 JavaScript 中,两者都是 [1, 2, 3],因为它们是通过引用而不是值传递的。
是否有可能编写一个合适的转译器?
【问题讨论】:
-
是的,但你不仅要转换语法,还要转换语义。 Lambdas、数组、字典、对象和几乎所有的语言结构在另一种语言中的行为都不同,因此这是一个非常有野心和复杂的问题需要解决。更不用说这需要很多时间。
-
我认为有一个相当成熟的 c 到 javascript 转换器,sitepoint.com/…。如果您使用 obj-c 而不是 swift,您可能会从中得到一些用处
标签: javascript swift transpiler