具有多个参数的函数

Posted

技术标签:

【中文标题】具有多个参数的函数【英文标题】:function with multiple arguments 【发布时间】:2010-04-01 12:08:13 【问题描述】:

如何在 Objective-C 中的单个函数中传递多个参数?我想传递 2 个整数值,返回值也是整数。我想使用新的 Objective-C 语法,而不是旧的 C/C++ 语法。

【问题讨论】:

【参考方案1】:

在objective-c 中它真的超级简单。这是您在 C 中执行此操作的方式:

int functName(int arg1, int arg2) 

    // Do something crazy!
    return someInt;

这仍然适用于objective-c,因为它与C兼容,但objective-c的方法是:

// Somewhere in your method declarations:
- (int)methodName:(int)arg1 withArg2:(int)arg2

    // Do something crazy!
    return someInt;


// To pass those arguments to the method in your program somewhere:
[objectWithOurMethod methodName:int1 withArg2:int2];

祝你好运!

【讨论】:

当你说“超级简单”时,恐怕是自以为是。 “methodName ... withArg2”如何比“functName”更有意义?我宁愿将其描述为 Apple 推荐的方法。此外,人们总是可以做类似-(int)functName:(int)arg1 :(int)arg2 我同意,withArg2 几乎不是超级简单易读的。如果有人想要一个接受五个参数的方法怎么办?他们是否必须使用withArg3withArg4 等等? 语法是从 SmallTalk 借来的,允许您将参数名称与方法名称穿插,但文本前缀是可选的。必需的部分是冒号来指示每个位置参数。以下作品例如 -(void) moveTo:(int)x :(int)y 并且可以称为 [somebody moveTo:42 :64]【参考方案2】:

因为这仍然是 google-able 并且有比接受的答案更好的解决方案;不需要可怕的withArg2 - 只需使用冒号:

声明:

@interface
-(void) setValues: (int)v1 : (int)v2;

定义:

@implementation
-(void) setValues: (int)v1 : (int)v2 
    //do something with v1 and v2

【讨论】:

【参考方案3】:

像这样:

int sum(int a, int b) 
    return a + b;

这样称呼:

int result;
result = sum(3, 5);
// result is now 8

More here

【讨论】:

对不起老板,我需要objective c中的代码,而不是简单c或c++中的代码 @Viral:那 Objective-C。查看链接。 @Viral:我已经更新了您的问题,以便更清楚地了解您在寻找什么。请记住,您提出的问题越清晰,您获得的答案质量就越高。【参考方案4】:
int add (int a, int b)

    int c;
    c = a + b;
   return c;

link text

【讨论】:

您至少可以告诉 OP 您从 (en.wikibooks.org/wiki/Objective-C_Programming/syntax) 复制和粘贴的位置。 对不起,我需要客观 c 语言的答案,而不是 c 或 c++。

以上是关于具有多个参数的函数的主要内容,如果未能解决你的问题,请参考以下文章

Excel:如何在 excel 中转义逗号以在另一个函数(具有多个参数)内传递一个函数(具有多个参数)

swift中具有多个参数的函数

具有多个同名参数的函数如何工作?

具有多个参数的函数中的 Javascript 默认参数

具有多个参数的函数

具有多个参数的 MultiProcess 函数