gpt4 book ai didi

c - Smalltalk 风格的消息与 C 风格的函数

转载 作者:太空狗 更新时间:2023-10-30 03:17:46 26 4
gpt4 key购买 nike

什么时候应该使用消息而不是 C 风格的函数?

最佳答案

Objective-c 为您做出了区分。消息必须发送给对象,但可以随时使用函数。

messages :

Objective-C 消息只能发送给对象,消息传递系统是调用类方法的方式。

例子:

// a class interface definition
// including a method named aMethod
@interface ANObject
{

}
- (void)aMethod;
@end


// a message sent to that object:
ANObject * myObject = [[ANObject alloc] init];
[myObject aMethod]; // <-- message
[myObject release];

函数:

Objective-C 继承了所有 C 语言,因此在需要时支持甚至鼓励 C 风格的函数调用。 Objective-C 对象只是作为指针传递,因此您仍然可以将它们作为参数传递给函数。当然,应该遵守有关将指针传递给函数的通常注意事项和规则。

例子:

// a regular C-style function
void someFunction(ANObject * argument)
{
// do something here...
}


// and how to call it:
someFunction(someObject);

什么时候使用它们?

当您想要访问对象/类的某些属性时,请使用消息/方法。很好的例子是访问 NSString 的长度:

int stringLength = [myString length];

设置一个属性的值:

[myObject setHidden:YES];

或者告诉一个对象执行一些任务:

[myAccount withdrawMoneyAndDriveToMexico];

当您想执行不属于类的任务时,请使用 C 风格的函数;应该独立的东西。很好的例子是数学函数,例如:

double degrees = ConvertRadiansToDegrees(radians);

关于c - Smalltalk 风格的消息与 C 风格的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com