OperatorForceTransfer.swift:
//
// OperatorForceTransfer.swift
// FormatForceTransfer
//
// Created by sixiaobo on 14-6-11.
// Copyright (c) 2014年 com.huangyibiao. All rights reserved.
//
import Foundation
//
// @brief In order to make different types can be operated,
// define the below functions.
// @author huangyibiao
/ + //
// make Int + Double = Double derectly
@infix func +(lhsParam: Int, rhsParam: Double) -> Double {
return Double(lhsParam) + rhsParam
}
// make Double + Int = Double derectly
@infix func +(lhsParam: Double, rhsParam: Int) -> Double {
return lhsParam + Double(rhsParam)
}
// make Int + Float = Float derectly
@infix func +(lhsParam: Int, rhsParam: Float) -> Float {
return Float(lhsParam) + rhsParam
}
// make Float + Int = Float derectly
@infix func +(lhsParam: Float, rhsParam: Int) -> Float {
return lhsParam + Float(rhsParam)
}
// make Double + Float = Double derectly
@infix func +(lhsParam: Double, rhsParam: Float) -> Double {
return lhsParam + Double(rhsParam)
}
// make Float + Double = Double derectly
@infix func +(lhsParam: Float, rhsParam: Double) -> Double {
return Double(lhsParam) + rhsParam
}
/ - //
// make Int - Double = Double derectly
@infix func -(lhsParam: Int, rhsParam: Double) -> Double {
return Double(lhsParam) - rhsParam
}
// make Double - Int = Double derectly
@infix func -(lhsParam: Double, rhsParam: Int) -> Double {
return lhsParam - Double(rhsParam)
}
// make Int - Float = Float derectly
@infix func -(lhsParam: Int, rhsParam: Float) -> Float {
return Float(lhsParam) - rhsParam
}
// make Float - Int = Float derectly
@infix func -(lhsParam: Float, rhsParam: Int) -> Float {
return lhsParam - Float(rhsParam)
}
// make Double - Float = Double derectly
@infix func -(lhsParam: Double, rhsParam: Float) -> Double {
return lhsParam - Double(rhsParam)
}
// make Float - Double = Double derectly
@infix func -(lhsParam: Float, rhsParam: Double) -> Double {
return Float(lhsParam) - rhsParam
}
/ * //
// make Int * Double = Double derectly
@infix func *(lhsParam: Int, rhsParam: Double) -> Double {
return Double(lhsParam) * rhsParam
}
// make Double * Int = Double derectly
@infix func *(lhsParam: Double, rhsParam: Int) -> Double {
return lhsParam * Double(rhsParam)
}
// make Int * Float = Float derectly
@infix func *(lhsParam: Int, rhsParam: Float) -> Float {
return Float(lhsParam) * rhsParam
}
// make Float * Int = Float derectly
@infix func *(lhsParam: Float, rhsParam: Int) -> Float {
return lhsParam * Float(rhsParam)
}
// make Double * Float = Double derectly
@infix func *(lhsParam: Double, rhsParam: Float) -> Double {
return lhsParam * Double(rhsParam)
}
// make Float * Double = Double derectly
@infix func *(lhsParam: Float, rhsParam: Double) -> Double {
return Float(lhsParam) * rhsParam
}
/ / //
// make Int / Double = Double derectly
@infix func /(lhsParam: Int, rhsParam: Double) -> Double {
return Double(lhsParam) / rhsParam
}
// make Double * Int = Double derectly
@infix func /(lhsParam: Double, rhsParam: Int) -> Double {
return lhsParam / Double(rhsParam)
}
// make Int / Float = Float derectly
@infix func /(lhsParam: Int, rhsParam: Float) -> Float {
return Float(lhsParam) / rhsParam
}
// make Float / Int = Float derectly
@infix func /(lhsParam: Float, rhsParam: Int) -> Float {
return lhsParam / Float(rhsParam)
}
// make Double / Float = Double derectly
@infix func /(lhsParam: Double, rhsParam: Float) -> Double {
return lhsParam / Double(rhsParam)
}
// make Float / Double = Double derectly
@infix func /(lhsParam: Float, rhsParam: Double) -> Double {
return Float(lhsParam) / rhsParam
}
test in main.swift:
import Foundation
println("test begin!")
println(1 + 2.0)
println(2.0 + 1)
println(Float(1.0) + 2.0)
println(1 - 2.0)
println(1.0 - 2)
println(1 * 2.0)
println(1 / 2.0)
println(1.0 / 2)
println(1 / 2.0)
println(1 % 2.0)
println(1.0 % 2)
result:
test begin!
3.0
3.0
3.0
-1.0
-1.0
2.0
0.5
0.5
0.5
1.0
1.0
Program ended with exit code: 0