Objective-C常數


常數指的是程式在執行期間不會改變的固定值。這些固定值也稱為文字。
常數可以是任何基本資料型別,如整數常數,浮點常數,字元常數或字串文字。還有列舉常數。
常數被視為常規變數,只不過它們的值在定義後無法修改。

1. 整數文字

整數文字可以是十進位制,八進位制或十六進位制常數。字首指定基數或基數:十六進位制為0x0X,八進位制為0,十進位制為空。

整數文字也可以有一個字尾,它是UL的組合,分別對於unsignedlong。字尾可以是大寫或小寫,可以按任何順序排列。

以下是整數文字的一些範例 -

212         /* 合法有效 */
215u        /* 合法有效 */
0xFeeL      /* 合法有效 */
078         /* 非法無效: 8 不是八進位制數位 */
032UU       /* 非法無效: 不能重複字尾*/

以下是各種型別的整數文字的一些範例 -

85         /* decimal */
0213       /* octal */
0x4b       /* hexadecimal */
30         /* int */
30u        /* unsigned int */
30l        /* long */
30ul       /* unsigned long */

2. 浮點文字

浮點文字有整數部分,小數點,小數部分和指數部分。 可以以十進位制形式或指數形式表示浮點文字。

在使用小數形式表示時,必須包括小數點,指數或兩者,並且在使用指數形式表示時,必須包括整數部分,小數部分或兩者。 帶符號的指數由eE引入。

以下是浮點文字的一些範例 -

3.14159       /* 合法有效 */
314159E-5L    /* 合法有效 */
510E          /* 非法無效: 不完整的指數 */
210f          /* 非法無效: 沒有小數或指數 */
.e55          /* 非法無效: 缺少整數或分數 */

3. 字元常數

字元文字用單引號括起來,例如'x',可以儲存在char型別的變數中。
字元文字可以是普通字元(例如,'x'),跳脫序列(例如,'\t'),或通用字元(例如,'\u02C0')。

C中有某些字元,當它們以反斜槓進行時,它們具有特殊含義,它們用於表示換行符(\n)或製表符(\t)。 在這裡,有一些此類跳脫序列程式碼的列表 -

跳脫序列 表示含義
\\ \字元
'字元
"字元
\? ?字元
\a 警報或鈴聲
\b 退格
\f 換頁
\n 換行
\r 回車
\t 水平製表
\v 水直製表
\ooo 八進位制數位的一到三位數

以下是顯示一些跳脫序列字元的範例 -

#import <Foundation/Foundation.h>

int main() {
   NSLog(@"Yiibai\t.com\n\n");
   return 0;
}

執行上面範例程式碼,得到以下結果:

Yiibai    .com

4. 字串文字

字串文字或常數用雙引號("")括起來。字串包含與字元文字類似的字元:普通字元,跳脫序列和通用字元。 可以使用字串文字將長的一行分成多行,並使用空格分隔它們。
以下是字串文字的一些範例。 這三種形式都是表示相同的字串。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

5. 定義常數

Objetive-C中有兩種簡單的方法來定義常數 -

  • 使用#define前處理器。
  • 使用const關鍵字。

5.1. 使用#define前處理器

以下是使用#define前處理器定義常數的形式 -

#define identifier value

通過以下範例程式碼理解 -

#import <Foundation/Foundation.h>

#define LENGTH 10   
#define WIDTH  25
#define NEWLINE '\n'

int main() {
   int area;
   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

執行上面範例程式碼,得到以下結果:

2018-11-14 02:12:14.492 main[10613] value of area : 250
2018-11-14 02:12:14.494 main[10613]

5.2. const關鍵字

使用const關鍵字作為字首來宣告具有特定型別的常數,如下所示 -

const type variable = value;

通過以下範例程式碼理解 -

#import <Foundation/Foundation.h>

int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 15;
   const char NEWLINE = '\n';
   int area;  

   area = LENGTH * WIDTH;
   NSLog(@"value of area : %d", area);
   NSLog(@"%c", NEWLINE);

   return 0;
}

執行上面範例程式碼,得到以下結果:

2018-11-14 02:15:15.421 main[170983] value of area : 150
2018-11-14 02:15:15.422 main[170983]

請注意,使用使用大寫字母來定義常數是一種很好的程式設計習慣。