繁体   English   中英

使用什么类型的变量来存储数学运算符?

[英]What type of variable do I use to store mathematical operator?

我正在尝试在上面放有运算符的按钮,例如/ * +等。我想以某种方式存储该运算符,以便可以在表达式中使用它,例如1 var 2 = 8

我想避免为每个运算符使用不同的方法,所以我认为最好使用var运算符。 适用于iPhone的Objective-C

普通的OO方法是创建一个类“ mathOperator”,该类具有使用两个参数的“ performOp”方法,然后从该类继承表示不同操作的不同类。 我不是Objective-C专家,所以我的语法可能有些偏离,但是我想您会写一些类似的内容:

result = [var On:arg1 And:arg2];

例如

result = [var On:2 And:3];

会根据var是设置为add还是mulresult设置为5或6。 实现看起来像(再次,非常粗略):

@interface Add: mathOperator
-(int)On: (int)arg1 And: (int)arg2;
@end

...

@implementation Add
-(int)On:  (int)arg1 And: (int)arg2 {
    return arg1 + arg2;
}

当然,其他运营商也是如此:

@implementation Mul
-(int)On:  (int)arg1 And: (int)arg2 {
    return arg1 * arg2;
}

阅读可可设计模式中的第5章。 使用的方法是定义“命令”类,这些类将执行定义为类方法“执行”的每个操作。 然后,您可以通过使用以下命令获取适当的类来动态执行操作

commandName = [NSString stringWithFormat:@"MY%@Command", [commandString capitalizedString]];
commandClass = NSClassFromString(commandName);  
result = [commandClass executeWithXValue:x yValue:y]; 

我这样做的方法是为每种算术类型创建方法并将数字传递给它们。 然后,而不是使用变量来调用函数。

在C语言中没有这样的东西。您必须使用选择器,该选择器调用一种方法来执行您想要的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM