Closure.init()
Define and chain Closures with Inputs and Outputs
No Scoped State
let noStateCount = Closure<String, String> { text in String(repeating: text, count: 4) } .then { string in Int(string) ?? 0 } XCTAssertEqual(noStateCount.method("5"), 5555) XCTAssertEqual(noStateCount.method("5"), 5555) XCTAssertEqual(noStateCount.method("5"), 5555)
Scoped State
let stateCount: Closure<String, Int> = Closure<String, String> { var count = 1 return { text in defer { count += 1 } return String(repeating: text, count: count) } } .then { string in Int(string) ?? 0 } XCTAssertEqual(stateCount.method("5"), 5) XCTAssertEqual(stateCount.method("5"), 55) XCTAssertEqual(stateCount.method("5"), 555)
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Closure
Define and chain Closures with Inputs and Outputs
Examples
No Scoped State
Scoped State