当前位置:  开发笔记 > IOS > 正文

数学符号作为函数参数

如何解决《数学符号作为函数参数》经验,为你挑选了2个好方法。

我可以以某种方式发送数学符号(+, - ,*)作为函数参数?我想reduce()为不同的标志调用功能.



1> Zell B...:

在swift中,是指定数学运算的函数名称.要将sign作为参数传递,参数类型必须是带两个数字并返回数字的函数.如果您命令+单击任何符号,您将看到其定义如下:

public func +(lhs:UInt8,rhs:UInt8) - > UInt8

public func +(lhs:Int8,rhs:Int8) - > Int8

public func +(lhs:UInt16,rhs:UInt16) - > UInt16

public func +(lhs:Int16,rhs:Int16) - > Int16

public func +(lhs:UInt32,rhs:UInt32) - > UInt32

public func +(lhs:Int32,rhs:Int32) - > Int32

public func +(lhs:UInt64,rhs:UInt64) - > UInt64

public func +(lhs:Int64,rhs:Int64) - > Int64

public func +(lhs:UInt,rhs:UInt) - > UInt

public func +(lhs:Int,rhs:Int) - > Int

在您的情况下,您的reduce函数应如下所示

func reduce(sign: (Int,Int)->Int) -> Int{

    return sign(2,3)
}

reduce(*)
reduce(-)



2> luk2302..:
func doSomeCalculation(_ fun:((Int, Int) -> Int)) -> Int {
    return fun(12,13)
}

doSomeCalculation(+) // 25
doSomeCalculation(-) // -1

同样可以做到的UInt,对IntXX

+基本上只是一个函数,它接受两个参数并返回它的总和.由于functions是任何其他对象,你可以将它们传递给它们.

你可以用同样的方式+进入reduce.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有