func add4Inside(_ numOpt: Int?): Int? {
numOpt.map { $0 + 4 }
}
func add4Inside(_ nums: [Int]): [Int] {
nums.map { $0 + 4 }
}
func add4Inside(_ numTask: Task<Int, Error>): Task<Int, Error> {
Task {
let value = await numTask.value
return value + 4
}
}
func add4Inside(_ numResult: Result<Int, Error>) -> Result<Int, Error> {
numResult.map { $0 + 4 }
}
func main() {
let nums: [Int] = [1,2,3,4]
let opt: Int? = 4
let task: Task<Int, Error> = Task { 4 }
let result: Result<Int, Error> = .success(10)
add4Inside(nums) //> [5,6,7,8]
add4Inside(opt) //> Optional(8)
add4Inside(task) //> Task(8)
add4Inside(result) //> Result.Success(14)
}