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

我正在尝试为**(未存在的)运算符创建一个通用函数,该运算符将计算左数字到正确数字的幂.

它适用于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

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

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...