Tag: 迅速

在Swift中是否有相当于Ruby的instance_eval?

在ruby我可以传递一个块到一个方法,并在接收对象的上下文中评估块。 class Receiver def method_a puts “hello from method_a” end def method_b puts “hello from method_b” end def define_something &action method_a instance_eval &action end end thing = Receiver.new thing.define_something { method_b } 产生以下输出: hello from method_a hello from method_b 什么是在Swift中实现这样的东西的正确方法? 这是我有,但当然Xcode抱怨methodB是一个未解决的标识符。 class Receiver { func methodA() { print(“hello from method A”) } func methodB() { […]

如何摆脱Swift结束$ 0?

假设我有一堂课: class Test { func someMethod() {} init(closure:(Test)->Void) { closure(self) } } 我可以用另一个类的另一个方法调用init(1) Test { $0.someMethod() } 或者像这样(2) Test { t in t.someMethod() } 是否有任何可能的解决方案,将允许编写完全相同的东西,没有“$ 0”或“吨”? 我想得到这个代码(3) Test { someMethod() } 行为必须完全符合(1)或(2)。 可能吗? 也许不是关闭,但有一些其他的Swiftfunction? 我想要做这样的Kotlintypes安全的生成器: http : //kotlinlang.org/docs/reference/type-safe-builders.html

用Swift编写Android应用程序

首先我专注于iOS,但是我已经为Java中的android做了2个应用程序,这太可怕了。 我无法解释为什么。 是Java还是Android本身,但我讨厌这么多,所以现在我不得不为Android编写另一个应用程序,所以我正在为我寻找每个选项。 这是我发现的: 科特林 – 人们说这是“Swift for android”,但我仍然坚持与Android库。 Silver – “你可以使用Swift直接对.NET,Java,Android和Cocoa API编写代码,还可以在不同平台之间共享很多非UI代码。 但在这一刻,我下载它的麻烦。 你对这件事有什么看法? 你有这两种解决方案的经验吗?

Swift – 从闭包中退出外层函数

在Kotlin中,你可以从闭包的外层函数返回。 fun main(args: Array) { val letters = listOf(“A”, “B”, “C”) fun lookForLetter(letter: String, letters: List){ letters.forEach { l -> if (l == letter) { println(“Found”) return } println(l) } println(“Completed”) } lookForLetter(“A”, letters = letters) } 输出: 发现 在Swift中,返回结束的执行 var letters = [“A”, “B”, “C”] func lookForLetter(letter: String, letters: [String]) { letters.forEach { (l) […]

在Swift中是否有与Kotlin等效的“function?

在Kotlin,我们可以改变下面的内容 // Original code var commonObj = ClassCommonObj() commonObj.data1 = dataA commonObj.data2 = dataB commonObj.data3 = dataC // Improved code var commonObj = ClassCommonObj() with(commonObj) { data1 = dataA data2 = dataB data3 = dataC } 但是在下面的Swift中,我是否具有与with函数相同withfunction? // Original code var commonObj = ClassCommonObj() commonObj.data1 = dataA commonObj.data2 = dataB commonObj.data3 = dataC

Swift到Kotlin,管理一成不变的名单

我试图移植一个现有的Swift代码给Kotlin,我想使用以下Swift代码的最佳做法: struct Deck { private(set) var cards: [Card] var cardsCount: Int { return self.cards.count } init(cards: [Card] = []) { self.cards = cards } mutating func add(card: Card) { self.cards.append(card) } } 设计目标是: cards属性在类之外是不可修改的,所以它的types应该是List fun add(card: Card)应该修改内部cards列表 有没有一种方法来实现这个Kotlin没有使用两个单独的属性 – 一个private var mutableCards: MutableList和一个计算属性val cards: List get() = this.mutableCards 对于这种情况,我需要一些最佳实践。