Biến Objective-C

Một biến không là gì khác ngoài tên được đặt cho một vùng lưu trữ mà chương trình của chúng ta có thể thao tác. Mỗi biến trong Objective-C có một kiểu cụ thể, xác định kích thước và cách bố trí bộ nhớ của biến; phạm vi giá trị có thể được lưu trữ trong bộ nhớ đó; và tập hợp các thao tác có thể áp dụng cho biến.

Tên của một biến có thể bao gồm các chữ cái, chữ số và ký tự gạch dưới. Nó phải bắt đầu bằng một chữ cái hoặc một dấu gạch dưới. Chữ hoa và chữ thường khác nhau vì Objective-C phân biệt chữ hoa chữ thường. Dựa trên các kiểu cơ bản đã giải thích ở chương trước, sẽ có các kiểu biến cơ bản sau:

Sr.No. Loại & Mô tả
1

char

Điển hình là một octet đơn (một byte). Đây là một kiểu số nguyên.

2

int

Kích thước tự nhiên nhất của số nguyên cho máy.

3

float

Một giá trị dấu chấm động chính xác duy nhất.

4

double

Giá trị dấu phẩy động có độ chính xác kép.

5

void

Đại diện cho sự vắng mặt của loại.

Ngôn ngữ lập trình Objective-C cũng cho phép định nghĩa nhiều loại biến khác nhau mà chúng ta sẽ trình bày trong các chương tiếp theo như Enumeration, Pointer, Array, Structure, Union, v.v. Đối với chương này, chúng ta hãy chỉ nghiên cứu các kiểu biến cơ bản.

Định nghĩa biến trong Objective-C

Định nghĩa biến có nghĩa là cho trình biên dịch biết nơi và bao nhiêu để tạo bộ nhớ cho biến. Định nghĩa biến chỉ định một kiểu dữ liệu và chứa danh sách một hoặc nhiều biến của kiểu đó như sau:

type variable_list;

Đây, type phải là kiểu dữ liệu Objective-C hợp lệ bao gồm char, w_char, int, float, double, bool hoặc bất kỳ đối tượng nào do người dùng xác định, v.v., và variable_listcó thể bao gồm một hoặc nhiều tên định danh được phân tách bằng dấu phẩy. Một số khai báo hợp lệ được hiển thị ở đây -

int    i, j, k;
char   c, ch;
float  f, salary;
double d;

Dòng int i, j, k;cả khai báo và định nghĩa các biến i, j và k; hướng dẫn trình biên dịch tạo các biến có tên i, j và k kiểu int.

Các biến có thể được khởi tạo (gán giá trị ban đầu) trong khai báo của chúng. Bộ khởi tạo bao gồm một dấu bằng theo sau là một biểu thức hằng số như sau:

type variable_name = value;

Một số ví dụ là -

extern int d = 3, f = 5;    // declaration of d and f. 
int d = 3, f = 5;           // definition and initializing d and f. 
byte z = 22;                // definition and initializes z. 
char x = 'x';               // the variable x has the value 'x'.

Đối với định nghĩa không có bộ khởi tạo: các biến có thời lượng lưu trữ tĩnh được khởi tạo ngầm định với NULL (tất cả các byte đều có giá trị 0); giá trị ban đầu của tất cả các biến khác là không xác định.

Khai báo biến trong Objective-C

Một khai báo biến cung cấp sự đảm bảo cho trình biên dịch rằng có một biến tồn tại với kiểu và tên đã cho để trình biên dịch tiến hành biên dịch thêm mà không cần chi tiết đầy đủ về biến. Khai báo biến chỉ có ý nghĩa tại thời điểm biên dịch, trình biên dịch cần khai báo biến thực tế tại thời điểm liên kết của chương trình.

Khai báo biến rất hữu ích khi bạn đang sử dụng nhiều tệp và bạn xác định biến của mình trong một trong các tệp, biến này sẽ khả dụng tại thời điểm liên kết chương trình. Bạn sẽ sử dụngexterntừ khóa để khai báo một biến ở bất kỳ vị trí nào. Mặc dù bạn có thể khai báo một biến nhiều lần trong chương trình Objective-C nhưng nó chỉ có thể được định nghĩa một lần trong một tệp, một hàm hoặc một khối mã.

Thí dụ

Hãy thử ví dụ sau, trong đó các biến đã được khai báo ở trên cùng, nhưng chúng đã được xác định và khởi tạo bên trong hàm chính:

#import <Foundation/Foundation.h>

// Variable declaration:
extern int a, b;
extern int c;
extern float f;

int main () {
  /* variable definition: */
  int a, b;
  int c;
  float f;
 
  /* actual initialization */
  a = 10;
  b = 20;
  
  c = a + b;
  NSLog(@"value of c : %d \n", c);

  f = 70.0/3.0;
  NSLog(@"value of f : %f \n", f);
 
  return 0;
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

2013-09-07 22:43:31.695 demo[14019] value of c : 30 
2013-09-07 22:43:31.695 demo[14019] value of f : 23.333334

Khái niệm tương tự áp dụng cho khai báo hàm khi bạn cung cấp tên hàm tại thời điểm khai báo và định nghĩa thực tế của nó có thể được đưa ra ở bất kỳ nơi nào khác. Trong ví dụ sau, nó được giải thích bằng cách sử dụng hàm C và như bạn đã biết Objective-C cũng hỗ trợ các hàm kiểu C:

// function declaration
int func();

int main() {
   // function call
   int i = func();
}

// function definition
int func() {
   return 0;
}

Giá trị và giá trị trong Objective-C

Có hai loại biểu thức trong Objective-C -

  • lvalue- Các biểu thức tham chiếu đến một vị trí bộ nhớ được gọi là biểu thức "lvalue". Giá trị có thể xuất hiện ở dạng bên trái hoặc bên phải của bài tập.

  • rvalue- Thuật ngữ rvalue đề cập đến một giá trị dữ liệu được lưu trữ tại một số địa chỉ trong bộ nhớ. Giá trị là một biểu thức không thể có giá trị được gán cho nó, có nghĩa là giá trị có thể xuất hiện ở bên phải nhưng không xuất hiện bên trái của một phép gán.

Các biến là các giá trị và do đó có thể xuất hiện ở bên trái của một phép gán. Các chữ số là các giá trị và do đó có thể không được gán và không thể xuất hiện ở phía bên trái. Sau đây là một tuyên bố hợp lệ -

int g = 20;

Nhưng sau đây không phải là một câu lệnh hợp lệ và sẽ tạo ra lỗi thời gian biên dịch -

10 = 20;