如果我使用JavaScript(或TypeScript),我可以做以下(只是想法); object = JSON.parse(jsonString) 而且我可以像这样使用它, alert(object.property); 超级简单。 如果我使用Java,我需要创建类并解析它来使用它。 我明白。 Kotlin和Swift怎么样? 他们有可选的types,为什么单行,类似Javascript的简单解析不存在,或者它呢? (甚至没有数据类或通过JSON的属性)
我已经开始一个项目,将Swift的子集转换成Kotlin(用于在iOS和Android应用程序之间共享业务逻辑),并使用Swift编译器的抽象语法树输出(即由-dump-ast选项生成)作为一个起点。 我想知道是否有人知道AST输出本身的“官方”语法和/或词法分析器。 这并不复杂,现在我已经创建了一个自己,但是如果我依靠支持的东西,我会感觉更舒服。
我需要实现一个算法,通过计算一个字符串的模来检查输入是否有效。 Kotlin中的代码: private val facteurs = arrayOf(7, 3, 1) private fun modulo(s: String): Int { var result = 0 var i = -1 var idx = 0 for (c in s.toUpperCase()) { val value:Int if (c == ‘<') { value = 0 } else if (c in "0123456789") { value = c – '0' } […]
我使用Kotlin编写了一个Android应用程序。 在ios的swift中,我已经为MVVM编写了这些代码,但我不知道我可以用于Android view.pullToRefresh.tap.bind(to: viewmodel.didTapRefresh) 当写Rx代码时,我可以使用方法绑定。 但是我无法find与Android相同的东西。 你能告诉我你是如何写在Kotlin这些代码? 谢谢
作为一个在Swift中编写的iOS开发人员,我发现越来越烦恼不得不将编写在Swift中的相同代码与使用JavaScript编码的前端开发人员协调起来。 在一个地方实现通用的功能,然后翻译成JS,会更加简单。 我开始怀疑Swift to JS编译器是否可行? 也许不共享完整的代码,但至少有一些通用的通用功能。 我在网上找到这个transpiler: SwiftJS 。 可悲的是,这个并没有真正削减它。 以下代码: let a = [1, 2] print(a.count) 在演示中返回Invalid Swift code 。 没有灌输信心。 不要介意像可选项或函数重载那样更复杂的位。 我想知道启动一个转播器项目,但后来我意识到有很多陷阱。 例如这个代码: var a = [1, 2] var b = a b.append(3) 应该等于[1, 2]而b等于[1, 2, 3] 。 在JavaScript中,两者都是[1, 2, 3]因为它们是通过引用而不是按值传递的。 是否可以写一个适当的翻译?
在Swift简介会上,演示了一个只读的属性description : class Vehicle { var numberOfWheels = 0 var description: String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description) 是否有任何意义,而不是使用一种方法来选择上述方法: class Vehicle { var numberOfWheels = 0 func description() -> String { return "\(numberOfWheels) wheels" } } let vehicle = Vehicle() println(vehicle.description()) 在我看来,你会选择一个只读计算属性的最明显的原因是: 语义 – 在这个例子中, description是类的一个属性,而不是它执行的动作。 简洁/清晰 – 防止在获取价值时使用空圆括号。 显然,上面的例子过于简单,但是还有其他很好的理由选择一个吗? […]
我来自我们使用NULL的Java / Android背景。 现在我正在做Swift / iOS,而且我对Swift的nil感到困惑。 我可以在Java中像NULL一样使用它吗? 它是以完全相同的方式行事,还是在使用方面有所不同?
我在iOS应用程序中使用dispatch_group来分组多个休息请求的功能: static func fetchCommentsAndTheirReplies(articleId: String, failure: ((NSError)->Void)?, success: (comments: [[String: AnyObject]], replies: [[[String: AnyObject]]], userIds: Set<String>)->Void) { var retComments = [[String: AnyObject]]() var retReplies = [[[String: AnyObject]]]() var retUserIds = Set<String>() let queue = dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0) Alamofire.request(.GET, API.baseUrl + API.article.listCreateComment, parameters: [API.article.articleId: articleId]).responseJSON { response in dispatch_async(queue) { guard let comments = response.result.value as? [[String: […]
如果我使用JavaScript(或TypeScript),我可以做以下(只是想法); object = JSON.parse(jsonString) 而且我可以像这样使用它, alert(object.property); 超级简单。 如果我使用Java,我需要创建类并解析它来使用它。 我明白。 Kotlin和Swift怎么样? 他们有可选的类型,为什么单行,类似Javascript的简单解析不存在,或者它呢? (甚至没有数据类或通过JSON的属性)
应用程序通常是为三个平台(Web,iOS,Android)创建的。 目前我们使用的技术堆栈是AngularJS(web)和Ionic / Cordova(iOS和Android)。 由于它们是基于JavaScript的,因此我们可以编写一次核心业务逻辑(例如登录),然后在三个平台(我知道,这是两个平台)上共享,从而将UI实现留给各个平台。 这种方法非常棒,可以帮助我们节省大量的时间和人力资源 – 核心业务逻辑被编写和测试一次,并随处部署。 Google使用类似的方法来开发收件箱,允许他们使用J2Objc共享70%的代码。 我们希望在新时代应用同样的精彩 – Swift,Kotlin和基于JavaScript的Web框架(例如React / VueJs)。 我们愿意使用这三种语言中的任何一种来编写共享代码。 我是Swift和Kotlin的新手,但这是迄今为止我最好的研究成果: SwiftKotlin将Swift转换成Kotlin KotlinJS将Kotlin转换为Js 所以开发过程将是Swift – > Kotlin – > JavaScript。 但是,转换后的代码不能生产,需要手动编辑。 而且,编写的代码必须是语言/平台库独立的。 例如,要编写JSON解析器,我们在Swift 4中使用Codable协议,在Kotlin中使用Moshi (external lib),JavaScript可以本地操作JSON。 我想看看有没有人有这个问题的一些很好的解决方案。 或者,也许问题是要弄清楚什么可以共享,以及要做三次。 或者这个过程需要更多的时间或者更容易出错,我们应该在三个不同的时间写同样的逻辑。 谢谢!