例如
add(int a,int b)这里我们传递两个参数int a,int b,
我们可以用不同的数据类型传递n参数,如int,float,long, 有可能吗?
我的意思是我只需要编写一个处理n个参数的方法。
答案 0 :(得分:4)
是的,可以将具有不同数据类型的参数传递给Objective-C方法。我假设您正在谈论Objective-C,因为问题是标记为iphone。
例如,您可以使用以下方法:
- (void)foo:(int)foo bar:(float)bar baz:(long)baz {
// ...
}
如果你在谈论C,你可以有一个功能:
void myfunc(int foo, float bar, long baz) {
// ...
}
如果你想编写具有可变大小参数列表的函数(因此可以使用1个参数,或2个参数,或3,......),我建议你看一下这个blog post which discusses variable argument lists in Objective-C/Cocoa或{ {3}}
答案 1 :(得分:0)
- (int)add:(int)number1 to:(int)number2 {
return number1 + number2;
}
使用[obj add:2 to:4]调用它;其中obj是接收添加消息的对象。
您可以使用上述任何类型的参数来实现您的想法。例如:
- (void)add:(int)number1 to:(float)number2 {
//print result here
}
标准类型转换等适用于任何编程语言。
如果您正在讨论完全任意数量的参数,请查看Objective C(Google it)中的Variadic函数。第一个搜索结果页面中有很多很好的教程。
答案 2 :(得分:0)
一切皆有可能,但我确信它需要一些严重的黑客才能让它适用于可变数据类型。如果您可以将需求更改为可变数量的特定数据类型,那么您应该查看“Cocoa with Love”的优秀教程:variable-argument-lists-in-cocoa