美文网首页无法删除的专题
函数中的可变参数-Swift3.0

函数中的可变参数-Swift3.0

作者: Jiubao | 来源:发表于2016-07-28 10:32 被阅读46次

可变参数就是说,一个函数可以接受多个参数(0-n),但是对于一个函数,只能最多有一个可变参数,可变参数前面需要加_标记。
例子:

func sum(_ nums: Int...) -> Int {
    var sum = 0
    for num in nums {
        sum += num
    }
    return sum
}

let mySum = sum(1, 2, 3)

print(mySum)

运行结果为:

6

但是如果去掉_标记,将不能正确识别可变参数:

func sum(nums: Int...) -> Int {
    var sum = 0
    for num in nums {
        sum += num
    }
    return sum
}

let mySum = sum(1, 2, 3)

print(mySum)

运行结果:

dictFunny.swift:40:16: error: missing argument label 'nums:' in call
let mySum = sum(1, 2, 3)
               ^
                nums: 

如果需要加其他参数:

func sum(when: String, _ nums: Int..., needPrint: Bool) -> Int {
    var sum = 0
    for num in nums {
        sum += num
    }
    return sum
}

let mySum = sum(when: "now", 1, 2, 3, needPrint: true)

print(mySum)

其他参数没有_标记,所以可以正确识别,另外在调用的时候,一定要确保let mySum = sum(when: "now", 1, 2, 3, needPrint: true)传入了参数名,否则会报错:

dictFunny.swift:40:16: error: missing argument for parameter 'when' in call
let mySum = sum("now", 1, 2, 3, true)
               ^

其实,可变参数和数组作为参数没有大的区别,上面也可以实现为:

func sum(when: String, nums: [Int], needPrint: Bool) -> Int {
    var sum = 0
    for num in nums {
        sum += num
    }
    return sum
}

let mySum = sum(when: "now", nums: [1, 2, 3], needPrint: true)

print(mySum)

运行结果不变,个人认为可以看需要进行取舍。

相关文章

  • 函数中的可变参数-Swift3.0

    可变参数就是说,一个函数可以接受多个参数(0-n),但是对于一个函数,只能最多有一个可变参数,可变参数前面需要加_...

  • Python函数的参数(详细版)

    函数的参数有:必选参数、默认参数、可变参数、关键字参数。 在Python中定义函数,可以用必选参数、默认参数、可变...

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • Python实战:函数

    Python中函数的声明格式: 例如: 函数的调用: 关于位置参数、关键字参数、可变参数和不可变参数 位置参数:参...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • Go语言可变参数

    可变参数 参数数量可变的函数称为可变参数函数 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符...

  • Python参数 * 与 ** ,及装包拆包

    (*args)可变参数在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以...

  • Go基础语法(四)

    可变参数函数 可变参数函数是一种参数个数可变的函数。 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意...

  • iOS变参函数的实现(Objective-C and Swift

    Objective-C 可变参数的函数在Objective-C中不罕见,像Cocoa中的很多常见的函数都是可变参数...

  • Lua可变参数

    Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用...表示函数有可变的参数。 把可变参数...

网友评论

    本文标题:函数中的可变参数-Swift3.0

    本文链接:https://www.haomeiwen.com/subject/lglajttx.html