Avatar
この間ちらっと話題に上がった、クロージャを引数に取る場合にデフォルトで何もさせたくない場合にどうするかというの
2:54 PM
public func nop<T>(_ v: T) {} こういうの作って
2:54 PM
public func doOptional(_ closure: ((Int) -> ())? = nil) { closure?(1) } public func doEmpty(_ closure: @escaping ((Int) -> ()) = nop) { closure(1) } 計測してみたけど、普通にOptionalのほうが速かったw (edited)
2:57 PM
2:57 PM
Optimizeしても似た比率の結果。引数に渡す時点でコピーが走るとか、冷静に考えたらそりゃそうかという感じ
2:57 PM
無になってはくれなかった。