我正在尝试创建一个通用函数**
(不存在的)运算符将计算左侧数字的右侧数字次方。
它适用于 0 和正数,但我想处理负数。
我想到了几个想法,但我想尝试将现有运算符的函数存储在变量中,如下所示:
var operation = *
or
var operation = /
using operation(a, b)
会做同样的事情a*b
or a/b
在 Swift 中这样的事情可能吗?
你不可以做这个:
var operation = *
但是你CAN做这个:
var operation:(Int, Int) -> Int = (*)
operation(4,2) // -> 8
Because *
有许多重载类型:
func *(lhs: UInt32, rhs: UInt32) -> UInt32
func *(lhs: Int32, rhs: Int32) -> Int32
func *(lhs: UInt64, rhs: UInt64) -> UInt64
func *(lhs: Int64, rhs: Int64) -> Int64
func *(lhs: UInt, rhs: UInt) -> UInt
func *(lhs: Int, rhs: Int) -> Int
func *(lhs: Float, rhs: Float) -> Float
func *(lhs: Double, rhs: Double) -> Double
func *(lhs: Float80, rhs: Float80) -> Float80
我们必须明确指定是哪一个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)