匿名闭包参数未包含在闭包中

 mobiledu2502861137 发布于 2023-01-12 09:15

为什么这段代码不起作用?

func function (param1 : Int, param2 : Int) -> Int {
    return $0 + $1
}

它会产生错误:

错误:匿名闭包参数未包含在闭包中

phelgo.. 9

看来你只能通过匿名闭包中的数字访问参数,而不是函数.

例如:

var sevenMultiplyedByThree: Int = {
    return $0 * 3
}(7)

此外,这仅适用于匿名参数,因此以下代码不起作用:

var sevenMultiplyedByThree: Int = {
    (namedParameter : Int) -> Int in
    return $0 * 3
}(7)


小智.. 5

Swift仅在没有参数声明的内联闭包内部自动提供“ Shorthand Argument”,匿名参数“ $”

您已声明接收参数param1和param2的函数。您可以使用它来发送函数作为闭包(块)或添加闭包执行。请参见下面的示例:

您的函数声明:

func function (param1 : Int, param2 : Int) -> Int 
{
    return param1 + param2
}

调用闭包的函数

func getSum(sumFunction:(Int, Int) -> (Int)) -> (Int)
{
    return sumFunction(3,5)
}

三种可能的关闭用法:

    getSum(sumFunction: function)
    getSum { (param1, param2) -> (Int) in
        return param1 + param2
    }

    getSum {
        return $0 + $1
    }

在最后一个getSum中,您有没有参数声明的内联闭包,仅在此处可以用于$ 0 ..

$-用$ 0,$ 1等名称引用闭包参数的值。

$ 0 =参数1,$ 1 =参数2

2 个回答
  • 看来你只能通过匿名闭包中的数字访问参数,而不是函数.

    例如:

    var sevenMultiplyedByThree: Int = {
        return $0 * 3
    }(7)
    

    此外,这仅适用于匿名参数,因此以下代码不起作用:

    var sevenMultiplyedByThree: Int = {
        (namedParameter : Int) -> Int in
        return $0 * 3
    }(7)
    

    2023-01-12 09:16 回答
  • Swift仅在没有参数声明的内联闭包内部自动提供“ Shorthand Argument”,匿名参数“ $”

    您已声明接收参数param1和param2的函数。您可以使用它来发送函数作为闭包(块)或添加闭包执行。请参见下面的示例:

    您的函数声明:

    func function (param1 : Int, param2 : Int) -> Int 
    {
        return param1 + param2
    }
    

    调用闭包的函数

    func getSum(sumFunction:(Int, Int) -> (Int)) -> (Int)
    {
        return sumFunction(3,5)
    }
    

    三种可能的关闭用法:

        getSum(sumFunction: function)
        getSum { (param1, param2) -> (Int) in
            return param1 + param2
        }
    
        getSum {
            return $0 + $1
        }
    

    在最后一个getSum中,您有没有参数声明的内联闭包,仅在此处可以用于$ 0 ..

    $-用$ 0,$ 1等名称引用闭包参数的值。

    $ 0 =参数1,$ 1 =参数2

    2023-01-12 09:17 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有