Swift 为什么@dynamicCallable即使实现了dynamicallyCall(带参数:)也不编译?

Swift 为什么@dynamicCallable即使实现了dynamicallyCall(带参数:)也不编译?,swift,Swift,我的代码很简单: @dynamicCallable struct A { func dynamicallyCall(withArguments arguments: Int...) -> Int { return 0 } } 这将抛出错误: @dynamicCallable attribute requires 'A' to have either a valid 'dynamicallyCall(withArguments:)' method or 'dynamical

我的代码很简单:

@dynamicCallable
struct A {
  func dynamicallyCall(withArguments arguments: Int...) -> Int {
    return 0
  }
}
这将抛出错误:

@dynamicCallable attribute requires 'A' to have either a valid 'dynamicallyCall(withArguments:)' method or 'dynamicallyCall(withKeywordArguments:)' method

我不知道还有什么可以让它工作。似乎也没有拼写错误。

方法签名是错误的,因为文档指定它必须具有符合“ExpressibleByArrayLiteral”协议的单个参数

DynamicCallyCall(withArguments:)方法的声明必须 具有一个符合ExpressibleByArrayLiteral的参数 协议

(检查动态可调性部分)


因此,不应将其表示为Int..,而应表示为[Int]

方法签名是错误的,因为文档指定它必须具有符合“ExpressibleByArrayLiteral”协议的单个参数

DynamicCallyCall(withArguments:)方法的声明必须 具有一个符合ExpressibleByArrayLiteral的参数 协议

(检查动态可调性部分)


因此,您不应将其表示为Int..,而应表示为[Int]

我认为方法签名是错误的。尝试使用dynamicallyCall(带参数:[Int])(而不是…)我认为方法签名是错误的。尝试动态调用(带参数:[Int])(而不是…)