#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
if (true) {
NSLog(@"Hello, World!");
}
[pool drain];
return 0;
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:const.m
功能:Objective-c 程式範例
作者:張凱慶
時間:西元 2013 年 4 月 */第 6 行
if (true) {if 後面所接的小括弧需要一個運算式,此處只代入布林值 true ,亦即為常數運算式。
編譯執行,結果如下

建立物件 (object) 或傳遞訊息也都是運算式,例如
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString *s = @"There is no spoon.";
NSLog(s);
NSLog(@"length: %d", [s length]);
[pool drain];
return 0;
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:const.m
功能:Objective-c 程式範例
作者:張凱慶
時間:西元 2013 年 4 月 */第 4 行是建立 NSAutoreleasePool 型態的物件,利用 NSAutoreleasePool 傳遞 alloc 與 init 訊息
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
第 8 行,向 NSString 型態的物件變數 s 傳遞 length 訊息,藉以取得字串長度
NSLog(@"length: %d", [s length]);
編譯執行,結果如下

由運算子與運算元所組成的運算式,會依結合規則及優先次序進行計算,全部運算子如下列表
| 運算子 | 結合規則 |
|---|---|
| () [] -> . : | 左到右 |
| ! ~ ++ -- + - * & (type) sizeof | 右到左 |
| * / % | 左到右 |
| + - | 左到右 |
| << >> | 左到右 |
| < <= > >= | 左到右 |
| == != | 左到右 |
| & | 左到右 |
| ^ | 左到右 |
| | | 左到右 |
| && | 左到右 |
| || | 左到右 |
| ?: | 右到左 |
| = += -= /= %= &= | 右到左 |
| ^= |= <<= >>= | 右到左 |
| , | 左到右 |
其中,小括弧具有最高的優先權,因此當運算式中任何部份需要先計算時,可以直接用小括號圍起來,無須考量運算子的優先次序。
| 中英文術語對照 | |
|---|---|
| 運算式 | expression |
| 運算元 | operand |
| 運算子 | operator |
| 物件 | object |
您可以繼續參考
運算式
相關目錄
Objective-C 快速導覽
Objective-C 教材
首頁
參考資料
Programming with Objective-C: About Objective-C
Programming with Objective-C: Working with Objects
沒有留言:
張貼留言