Avatar
omochimetaru 3/24/2017 2:43 AM
@here ここにKotlinのletメソッドについて知ってる人居ますか?Swiftに同じものを実装する事ができないんですけど、 @koher が演算子にしたらどう?って言っていて、わりと良さそうな気がしている。
2:45 AM
kotlinのletは・・・ https://github.com/JetBrains/kotlin/blob/1.1.0/libraries/stdlib/src/kotlin/util/Standard.kt#L62 /** * Calls the specified function [block] with `this` value as its argument and returns its result. */ @kotlin.internal.InlineOnly public inline fun <T, R> T.let(block: (T) -> R): R = block(this)
kotlin - The Kotlin Programming Language
2:46 AM
Rubyのtapとおそらく等価 http://ref.xaio.jp/ruby/classes/object/tap
2:47 AM
仮にこれを => 演算子でSwiftに導入すると、次のような事ができる
2:51 AM
// こんな関数があったとして func hogehogeFunc(str: String, int: Int) -> String { return "" } // こんなStructがあったとして struct Cat { var name: String var age: Int } // こんな関数が合ったとして func createPrettyCat() -> Cat { return Cat(name: "mike", age: 2) } // 従来は・・・ func demo1() { let cat = createPrettyCat() let result = hogehogeFunc(str: cat.name, int: cat.age) print(result) } // こういうのがシュッと1行にできなくて萎える // 提案のもとでは・・・ func demo2() { print(createPrettyCat() => { hogehogeFunc(str: $0.name, int: $0.age) }) } // 左から右にシュ〜っとかける