我感到有点愚蠢...我想摆脱代码重复,因此我需要遍历某些函数(几个达尔文几何函数)。 但是当我尝试
for function in [Darwin.acos, Darwin.cos, Darwin.sin] { print(function(1.0)) }
我得到错误“'acos'的歧义使用”。我还尝试了Darwin.acos(Double)
,并获得了“对成员'acos'的歧义引用”和Darwin.acos { $0 }
(及类似名称),没有任何运气。
是否可以这样做?谢谢!
答案 0 :(得分:2)
您必须在某处指定类型:
logging.level.org.neo4j.ogm.drivers.bolt.request.BoltRequest=DEBUG
由于函数针对不同的浮点类型进行了重载:
let functions: [(Double) -> Double] = [Darwin.acos, Darwin.cos, Darwin.sin]
for function in functions { print(function(1.0)) }
答案 1 :(得分:2)
除了Sulthan said:
在以后的Swift版本中,这些函数也可以作为静态函数用于浮点类型,请比较SE-0246 Generic Math(s) Functions:
let functions = [Double.acos, Double.cos, Double.sin]
for function in functions { print(function(1.0)) }
您现在可以使用https://swift.org/download/#snapshots中当前的Swift开发者快照来尝试此操作。