美文网首页
可变参数函数

可变参数函数

作者: fordring2008 | 来源:发表于2017-02-04 09:24 被阅读21次

OC 中不固定参数函数, 最后一个参数后面的类型都是和最后那个参数的类型相同

//这个方法中的,就是使用了不固定参数

NSString *str = [NSString stringWithFormat:(nonnull NSString *), ...];

//不固定参数的方法定义

- (void)method:(id)param1 param2:(NSNumber*)param2,...;

//不固定参数的方法实现

- (void)method:(id)param1 param2:(NSNumber*)param2,...{

va_listap;

va_start(ap, param2);

//定义一个参数数组

NSMutableArray *arr = [NSMutableArray arrayWithCapacity:10];

//如果param2参数本身为空,则不去解析不定形参数部分

if(param2 !=nil) {

[arr addObject:param2];

NSNumber*num;

do{

num =va_arg(ap,NSNumber*);

if(num !=nil){

[arr addObject:num];

}

}while(num !=nil);

}

va_end(ap);

//数组中已经添加了所有不定性参数,也可能是空数组

// ...

}

Swift 更加简单

在方法中被当做数组来处理

//可变参数的方法

func sum(input:Int...) ->Int{

return input.reduce(0, +)

//    return input.reduce(0, { (result, anotherValue) -> Int in

//        return result - anotherValue;

//    })

}

print(sum(input:1,2,3,4,5))//  15

限制还是有的,

和 oc 一样, 只能有一个参数是个数可变类型的, 并且类型是一样的

但是 swift 可以不像 oc 那样可变参数必须是最后一个参数,

swift 的可变参数可以是 任意位置的,

相关文章

  • 12. 可变参数函数

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

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

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

  • Go语言可变参数

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

  • Go基础语法(四)

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

  • Lua可变参数

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

  • Python 函数

    调用函数 定义函数 函数的参数必选参数、默认参数、可变参数、关键字参数、命名关键字参数 位置参数 默认参数 可变参...

  • Golang 系列教程 第 12 部分,可变参数函数

    欢迎来到 Golang 系列教程 第 12 部分 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法...

  • Go教程第九篇:可变参数函数

    可变参数函数 欢迎来到《Golang系列教程》的第九篇文章---可变参数函数。 什么是可变参数函数 ? 通常情况下...

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

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

  • Golang学习笔记-1.13 可变参数函数

    本文系第十三篇Golang语言学习教程 可变参数函数 参数数量可变的函数,称为可变参数函数。最典型的例子就是fmt...

网友评论

      本文标题:可变参数函数

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