Swift - Toán tử

Một toán tử là một ký hiệu yêu cầu trình biên dịch thực hiện các thao tác toán học hoặc logic cụ thể. Objective-C có nhiều toán tử cài sẵn và cung cấp các loại toán tử sau:

  • Toán tử số học
  • Toán tử so sánh
  • Toán tử logic
  • Toán tử Bitwise
  • Người điều hành nhiệm vụ
  • Toán tử phạm vi
  • Nhà điều hành khác

Hướng dẫn này sẽ giải thích từng toán tử số học, quan hệ, logic, bitwise, phép gán và các toán tử khác.

Toán tử số học

Bảng sau đây cho thấy tất cả các toán tử số học được ngôn ngữ Swift 4 hỗ trợ. Giả sử biếnA giữ 10 và biến B giữ 20, sau đó -

Nhà điều hành Sự miêu tả Thí dụ
+ Thêm hai toán hạng A + B sẽ cho 30
- Trừ toán hạng thứ hai với toán hạng đầu tiên A - B sẽ cho -10
* Nhân cả hai toán hạng A * B sẽ cho 200
/ Chia tử số cho mẫu số B / A sẽ cho 2
% Toán tử mô đun và phần còn lại của sau một phép chia số nguyên / float B% A sẽ cho 0

Toán tử so sánh

Bảng sau đây cho thấy tất cả các toán tử quan hệ được ngôn ngữ Swift 4 hỗ trợ. Giả sử biếnA giữ 10 và biến B giữ 20, sau đó -

Nhà điều hành Sự miêu tả Thí dụ
== Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không; nếu có, thì điều kiện trở thành true. (A == B) không đúng.
! = Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không; nếu các giá trị không bằng nhau, thì điều kiện trở thành true. (A! = B) là đúng.
> Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không; nếu có, thì điều kiện trở thành true. (A> B) không đúng.
< Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không; nếu có, thì điều kiện trở thành true. (A <B) là đúng.
> = Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không; nếu có, thì điều kiện trở thành true. (A> = B) là không đúng.
<= Kiểm tra xem giá trị của toán hạng bên trái nhỏ hơn hoặc bằng giá trị của toán hạng bên phải; nếu có, thì điều kiện trở thành true. (A <= B) là đúng.

Toán tử logic

Bảng sau đây cho thấy tất cả các toán tử logic được hỗ trợ bởi ngôn ngữ Swift 4. Giả sử biếnA giữ 1 và biến B giữ 0, sau đó -

Nhà điều hành Sự miêu tả Thí dụ
&& Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true. (A && B) là sai.
|| Được gọi là Toán tử logic HOẶC. Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true. (A || B) là đúng.
! Được gọi là Toán tử logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng, thì toán tử logic NOT sẽ làm cho nó sai. ! (A && B) là đúng.

Toán tử Bitwise

Toán tử bitwise làm việc trên các bit và thực hiện thao tác từng bit. Bảng sự thật cho &, |, và ^ như sau:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Assume A = 60; and B = 13;

In binary format, they will be as follows:

A = 0011 1100

B = 0000 1101

-----------------

A & B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

Các toán tử bitwise được hỗ trợ bởi ngôn ngữ Swift 4 được liệt kê trong bảng sau. Giả sử biếnA giữ 60 và biến B giữ 13, sau đó 7−

Nhà điều hành Sự miêu tả Thí dụ
& Toán tử AND nhị phân sao chép một bit vào kết quả, nếu nó tồn tại trong cả hai toán hạng. (A & B) sẽ cho 12, là 0000 1100
| Toán tử OR nhị phân sao chép một bit, nếu nó tồn tại trong một trong hai toán hạng. (A | B) sẽ cho 61, là 0011 1101
^ Toán tử XOR nhị phân sao chép bit, nếu nó được đặt trong một toán hạng nhưng không phải cả hai. (A ^ B) sẽ cho 49, là 0011 0001
~ Toán tử bổ sung số nhị phân là một ngôi và có tác dụng 'lật' các bit. (~ A) sẽ cho -61, là 1100 0011 ở dạng phần bù của 2.
<< Toán tử Shift trái nhị phân. Giá trị của toán hạng bên trái được di chuyển sang trái bằng số bit được chỉ định bởi toán hạng bên phải. (A << 2 sẽ cho 240, là 1111 0000
>> Toán tử Shift phải nhị phân. Giá trị toán hạng bên trái được di chuyển sang phải bằng số bit được chỉ định bởi toán hạng bên phải. A >> 2 sẽ cho 15, là 0000 1111

Người điều hành nhiệm vụ

SSwift 4 hỗ trợ các toán tử gán sau:

Nhà điều hành Sự miêu tả Thí dụ
= Toán tử gán đơn giản, Gán giá trị từ toán hạng bên phải sang toán hạng bên trái C = A + B sẽ gán giá trị của A + B vào C
+ = Thêm toán tử gán AND, Nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái C + = A tương đương với C = C + A
- = Trừ toán tử gán AND, Nó trừ toán hạng bên phải khỏi toán hạng bên trái và gán kết quả cho toán hạng bên trái C - = A tương đương với C = C - A
* = Nhân toán tử gán AND, Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái C * = A tương đương với C = C * A
/ = Toán tử gán AND, Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái C / = A tương đương với C = C / A
% = Toán tử gán mô-đun AND, Cần mô-đun sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái C% = A tương đương với C = C% A
<< = Dịch chuyển trái và toán tử gán C << = 2 giống với C = C << 2
>> = Toán tử chuyển nhượng AND phải C >> = 2 giống với C = C >> 2
& = Toán tử gán bitwise AND C & = 2 giống C = C & 2
^ = OR độc quyền theo bit và toán tử gán C ^ = 2 giống C = C ^ 2
| = bao gồm bitwise OR và toán tử gán C | = 2 tương tự như C = C | 2

Toán tử phạm vi

Swift 4 bao gồm hai toán tử phạm vi, là các phím tắt để thể hiện một phạm vi giá trị. Bảng sau giải thích hai toán tử này.

Nhà điều hành Sự miêu tả Thí dụ
Phạm vi đóng (a ... b) xác định một phạm vi chạy từ a đến b và bao gồm các giá trị a và b. 1 ... 5 cho 1, 2, 3, 4 và 5
Phạm vi nửa mở (a .. <b) xác định một phạm vi chạy từ a đến b, nhưng không bao gồm b. 1 .. <5 cho 1, 2, 3 và 4
Phạm vi một mặt

a…, xác định một phạm vi chạy từ đầu đến cuối của các phần tử

… A, xác định một phạm vi bắt đầu từ đầu đến a

1… cho 1, 2,3… kết thúc phần tử

… 2 cho bắt đầu… đến 1,2

Nhà điều hành khác

Swift 4 hỗ trợ một số toán tử quan trọng khác bao gồm rangevà? : được giải thích trong bảng sau.

Nhà điều hành Sự miêu tả Thí dụ
Trừ một bậc Dấu của một giá trị số có thể được chuyển đổi bằng cách sử dụng tiền tố - -3 hoặc -4
Unary Plus Trả về giá trị mà nó hoạt động, không có bất kỳ thay đổi nào. +6 cho 6
Điều kiện bậc ba Tình trạng ? X: Y Nếu Điều kiện là đúng? Sau đó giá trị X: Ngược lại giá trị Y

Ưu tiên nhà khai thác

Mức độ ưu tiên của toán tử xác định nhóm các thuật ngữ trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá. Một số toán tử nhất định có quyền ưu tiên cao hơn những toán tử khác; ví dụ, toán tử nhân có mức độ ưu tiên cao hơn toán tử cộng.

Ví dụ: x = 7 + 3 * 2; ở đây, x được gán 13 chứ không phải 20 vì toán tử * có mức độ ưu tiên cao hơn +, vì vậy, đầu tiên nó được nhân với 3 * 2 và sau đó cộng thành 7.

Ở đây, các toán tử có mức độ ưu tiên cao nhất xuất hiện ở đầu bảng, những toán tử có mức độ ưu tiên thấp nhất xuất hiện ở cuối bảng. Trong một biểu thức, các toán tử có mức độ ưu tiên cao hơn sẽ được đánh giá đầu tiên.

Nhà điều hành Sự miêu tả Thí dụ
Toán tử biểu thức chính () []. expr ++ expr-- trái sang phải
Nhà khai thác đơn lẻ

* & + -! ~ ++ expr --expr

* /%

+ -

>> <<

<> <=> =

==! =

phải sang trái
Toán tử nhị phân

&

^

|

&&

||

trái sang phải
Nhà điều hành bậc ba ?: phải sang trái
Người điều hành nhiệm vụ = + = - = * = / =% = >> = << = & = ^ = | = phải sang trái
Dấu phẩy , trái sang phải