我想让函数在我的代码中包含以计算百分比。C方法签名的目标C等价物
在PHP中,它是:
function percent(a,b){
return a/b*100;
}
在Objective C,我不知道。我试过了:
-(void)percent(a,b){
return a/b*100;
}
但是有2个错误。你能解释一下如何使它工作吗?
谢谢你的帮助
我想让函数在我的代码中包含以计算百分比。C方法签名的目标C等价物
在PHP中,它是:
function percent(a,b){
return a/b*100;
}
在Objective C,我不知道。我试过了:
-(void)percent(a,b){
return a/b*100;
}
但是有2个错误。你能解释一下如何使它工作吗?
谢谢你的帮助
做的比较正确的做法,这将是:
- (float)precentageByDevidingFloat:(float)a byFloat:(float)b {
float returnValue = 0;
if (b != 0)
returnValue = a/b * 100;
return returnValue;
}
您使用更正确的命名约定通过这种方式,你实际上返回浮点并且如果您的安全有些人给你0值B中 (应该由文档覆盖)
如果'b == 0',可能有兴趣返回'NaN'。 – Romain
您不必检查0,如果'b = 0',函数将返回无穷大,当被0除时,浮点数的行为不像整数。 –
的方法是在稍微不同的语法定义比你习惯:
- (float)percentWithA:(float)a dividedByB:(float)b
{
return a/b * 100;
}
的参数“散落”在整个方法调用。例如,这个方法的名字是percentWithA:dividedByB:
。但是,您不需要像这次调用一样明确。例如,您可以做此:
- (float)percent:(float)a :(float)b { /* ... */ }
但它并没有提供太多的上下文。
你打败了我。将删除我的:) –
如果你涵盖了我没有的任何东西,随时保持你的答案。 :) –
没有必要。我只是包含一个指向ObjC intro doc的指针,我认为我们的人肯定需要阅读:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html –
你也可以像这样做,有一个C函数:
// in your .h
float percent(float a, float b);
// in your .m or .c
float percent(float a, float b)
{
return a/b * 100.0f;
}
或者,如果你是到宏:
// remember to always enclose macros in parentheses
#define percent(a, b) (a/b * 100.0f)
而你也这样称呼它:
percent(50, 20);
你甚至可以使用宏!!! 1! – Romain
Objective-C使用一个奇怪的惯例,将参数名称作为方法名称的一部分,因此参数声明是嵌入的n方法名称。
-(float)percentOf:(float)a over:(float)b
{
return (a/b) * 100.0;
}
括号中的第一种类型定义了返回类型,参数来冒号后也有自己的括号类型。
在开始编写代码之前,我想推荐阅读一点关于该语言的语法。 Obj-C方法的语法是不同的,所以很容易混淆,但是你已经尝试过的方式表明你没有阅读关于Obj-C中方法语法的一行。 – taskinoor
说“有2个错误”是不够的。你需要说明他们是哪些错误。 – Romain
谢谢。 这是y的第一次发布在这里,我非常惊喜。 有关信息,我设法使用RestKit与Json创建应用程序,但我没有遇到此问题。 我很乐意阅读有关编程的文档,但我认为在使用情况下,其语法可能会有很大差异。这仅仅是个开始。 我喜欢。 谢谢你的欢迎。 Alex –