E4013#
此函数的类型需要的参数数量与提供的参数数量不同。
错误示例:#
fn f() -> (() -> Int32) {
fn (x: Int32) { x }
}
上面的示例声明了一个函数 f,该函数返回一个不带参数的函数,但实际返回的却是一个带一个参数的函数。这将导致第 2 行出现以下错误:
This function has type () -> Int32, which expects 0 argument(s), but is given 1 argument(s).
建议#
修改代码,使函数类型中的参数数量与函数定义中的参数数量相匹配。
///|
pub fn f() -> (Int32) -> Int32 {
fn(x : Int32) { x }
}
或:
///|
pub fn g(x : Int32) -> () -> Int32 {
fn() { x }
}