Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
sorted([5, 7, 3], <) // результат [3, 5, 7]
sorted("sortme", >) // результат "tsrome"
performOperation, но оказалось, что операторную функцию можно задавать только явно.func performOperation(op1: Double, op2: Double, operation: (Double, Double) -> Double) -> Double {
return operation(op1, op2)
}
func addDouble (a1:Double, a2:Double) ->Double {return (a1 + a2)}
func multiplyDouble (a1:Double, a2:Double) ->Double {return (a1 * a2)}
let operationDictionary: Dictionary<String, (Double, Double) -> Double > = [ "+": addDouble , "x": multiplyDouble]
var symbolOperation:String = "x"
if let operation = operationDictionary[symbolOperation] { performOperation(3.0, 2.0, operation)} // 6
let operationDictionary: Dictionary<String, (Double, Double) -> Double > = [ "+": + , "x": *]
let operationDictionary: Dictionary<String, (Double, Double) -> Double > = [ "+": {$0 + $1} , "x": {$0 * $1}]
func performOperation(op1: Double, op2: Double, operation: (Double, Double) -> Double) -> Double {
return operation(op1, op2)
}
let operationDictionary: Dictionary<String, (Double, Double) -> Double > = [ "+": (+) , "x": (*), "-": (-)]
var symbolOperation:String = "x"
if let operation = operationDictionary[symbolOperation] { performOperation(3.0, 2.0, operation)} // 6
Используем замыкания в Swift по полной