我試圖把有運營商對他們的按鈕,像/ * +
,等我想運營商存儲以這樣的方式,我可以在表達式中使用它,就像1 var 2 = 8
我用什麼類型的變量來存儲數學運算符?
我想避免不得不爲每個操作符使用不同的方法,所以操作符var將是我最好的選擇,我想。 Objective-C for iPhone
我試圖把有運營商對他們的按鈕,像/ * +
,等我想運營商存儲以這樣的方式,我可以在表達式中使用它,就像1 var 2 = 8
我用什麼類型的變量來存儲數學運算符?
我想避免不得不爲每個操作符使用不同的方法,所以操作符var將是我最好的選擇,我想。 Objective-C for iPhone
通常的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;
}
C中沒有這樣的事情,你必須使用一個選擇器來調用一個方法去做你想做的事。
讀CH 5 Cocoa Design Patterns。使用的方法是定義「Command」類,它們將執行定義爲類方法「execute」的每個操作。然後你就可以獲取相應的類使用以下
commandName = [NSString stringWithFormat:@"MY%@Command", [commandString capitalizedString]];
commandClass = NSClassFromString(commandName);
result = [commandClass executeWithXValue:x yValue:y];
的方式我會做到這一點是爲每個類型arithmatic的方法,並通過數字放進去動態地執行該操作。然後,而不是所有與變量調用該函數。