Swift 学习之二十:类型强转(+、-、*、/)

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




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值