import UIKit
protocol Operator {
var num: (Double, Double) {
get
set
}
func getResult() -> Double?
static func createOperation() -> Operator
}
struct Addition: Operator {
var num = (0.0, 0.0)
func getResult() -> Double? {
return num.0 + num.1
}
static func createOperation() -> Operator {
return Addition()
}
}
struct Subtraction: Operator {
var num = (0.0, 0.0)
func getResult() -> Double? {
return num.0 - num.1
}
static func createOperation() -> Operator {
return Subtraction()
}
}
struct Multiplication: Operator {
var num = (0.0, 0.0)
func getResult() -> Double? {
return num.0 * num.1
}
static func createOperation() -> Operator {
return Multiplication()
}
}
struct Division: Operator {
var num = (0.0, 0.0)
func getResult() -> Double? {
var result: Double?
if num.1 != 0 {
result = num.0 / num.1
}
return result
}
static func createOperation() -> Operator {
return Division()
}
}
var testSubtraction = Subtraction.createOperation()
testSubtraction.num = (5, 2)
print(testSubtraction.getResult())
var testMultiplication = Multiplication.createOperation()
testMultiplication.num = (2, 3)
print(testMultiplication.getResult())