Thenというライブラリを使ってKotlinのapplyに近い事をしてみました
ライブラリはSwift Package Managerで追加します
他にもCocoaPodsにも対応しています
Thenの使い方は下の通りです
thenというメソッドを呼んでその中でそのオブジェクトに対する処理を記載します
import UIKit import Then class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let label = UILabel().then { $0.text = "Hello, World!" $0.textColor = .red $0.textAlignment = .center $0.sizeToFit() } view.addSubview(label) label.center = view.center } }
CGRectのような構造体に対してはwithメソッドを使います
内部で元データをコピーしているのでimmutableな構造体に対しても使えます
let rect = CGRect().with { $0.origin = CGPoint(x: 50, y: 50) $0.size = CGSize(width: 200, height: 100) }
構造体のプロパティに値を入れない場合、doメソッドを使う事もできます
doは構造体をコピーせずに使っているため、プロパティへの代入はできません
UserDefaults.standard.do { $0.set("devxoul", forKey: "username") $0.set("devxoul@gmail.com", forKey: "email") $0.synchronize() }