【问题标题】:What type of variable do I use to store mathematical operator?我用什么类型的变量来存储数学运算符?
【发布时间】:2010-07-02 09:36:45
【问题描述】:

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

我想避免对每个运算符使用不同的方法,所以我认为运算符 var 是我的最佳选择。 iPhone 上的 Objective-C

【问题讨论】:

    标签: iphone objective-c math variables operators


    【解决方案1】:

    通常的 OO 方法是创建一个类“mathOperator”,该类具有一个方法“performOp”,该方法采用两个参数,然后从中继承代表不同操作的不同类。我不是 Objective-C 方面的专家,所以我的语法可能有点不对劲,但我认为你会写如下内容:

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

    例如

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

    result 设置为5 或6,具体取决于var 设置为add 还是mul。实现看起来像(再次,非常粗略):

    @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;
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        我这样做的方法是为每种类型的算术创建方法并将数字传递给它们。然后代替所有的变量调用函数。

        【讨论】:

          【解决方案4】:

          C 中没有这样的东西。你必须使用一个选择器来调用一个方法来做你想做的事情。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-10-29
            • 2011-05-01
            • 2019-02-19
            • 2018-09-26
            • 1970-01-01
            • 2011-01-12
            • 1970-01-01
            • 2013-06-11
            相关资源
            最近更新 更多