加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 在变量中分配运算符函数

发布时间:2020-12-14 04:52:46 所属栏目:百科 来源:网络整理
导读:我正在尝试为**(未存在的)运算符创建一个通用函数,该运算符将计算左数字到正确数字的幂. 它适用于0和正数,但我想要处理负数. 我想到了几个想法,但我想尝试将现有运算符的功能存储在变量中,如下所示: var operation = * 要么 var operation = / 使用操作(a,b
我正在尝试为**(未存在的)运算符创建一个通用函数,该运算符将计算左数字到正确数字的幂.

它适用于0和正数,但我想要处理负数.

我想到了几个想法,但我想尝试将现有运算符的功能存储在变量中,如下所示:

var operation = *

要么

var operation = /

使用操作(a,b)将与a * b或a / b相同

在Swift中这样的事情可能吗?

解决方法

你不能做这个:

var operation = *

但是,你可以这样做:

var operation:(Int,Int) -> Int = (*)

operation(4,2) // -> 8

因为*有许多重载类型:

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

我们必须明确指定哪一个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读