gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:05:25 24 4
gpt4 key购买 nike

我正在尝试为 ** (不存在的)运算符创建一个通用函数,该函数将计算左侧数字的右侧数字次方。

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

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

var operation = *

var operation = /

使用操作(a, b)将与a*ba/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

我们必须明确指定是哪一个。

关于swift - 在变量中分配运算符函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39437330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com