Toán tử Kotlin: Số học, Toán tử chỉ định và hơn thế nữa

Kotlin có một tập hợp các toán tử để thực hiện các toán tử số học, gán, so sánh và hơn thế nữa. Bạn sẽ học cách sử dụng các toán tử này trong bài viết này.

Toán tử là các ký hiệu (ký tự) đặc biệt thực hiện các phép toán trên toán hạng (biến và giá trị). Ví dụ, +là một toán tử thực hiện phép cộng.

Trong bài viết về biến Java, bạn đã học cách khai báo biến và gán giá trị cho biến. Bây giờ, bạn sẽ học cách sử dụng các toán tử thực hiện các thao tác khác nhau trên chúng.

1. Toán tử số học

Đây là danh sách các toán tử số học trong Kotlin:

Toán tử số học Kotlin
Nhà điều hành Ý nghĩa
+ Phép cộng (cũng được sử dụng để nối chuỗi)
- Toán tử phép trừ
* Toán tử nhân
/ Người điều hành bộ phận
% Nhà điều hành mô-đun

Ví dụ: Toán tử số học

 fun main(args: Array) ( val number1 = 12.5 val number2 = 3.5 var result: Double result = number1 + number2 println("number1 + number2 = $result") result = number1 - number2 println("number1 - number2 = $result") result = number1 * number2 println("number1 * number2 = $result") result = number1 / number2 println("number1 / number2 = $result") result = number1 % number2 println("number1 % number2 = $result") ) 

Khi bạn chạy chương trình, đầu ra sẽ là:

 number1 + number2 = 16.0 number1 - number2 = 9.0 number1 * number2 = 43.75 number1 / number2 = 3.5714285714285716 number1% number2 = 2.0

Các +nhà điều hành cũng được sử dụng để nối các Stringgiá trị.

Ví dụ: Nối các chuỗi

 fun main(args: Array) ( val start = "Talk is cheap. " val middle = "Show me the code. " val end = "- Linus Torvalds" val result = start + middle + end println(result) )

Khi bạn chạy chương trình, đầu ra sẽ là:

Nói chuyện là rẻ. Cho tôi xem mã. - Linus Torvalds

Các toán tử số học thực sự hoạt động như thế nào?

Giả sử, bạn đang sử dụng +toán tử số học để cộng hai số a và b.

Dưới mui xe, biểu thức a + bgọi a.plus(b)hàm thành viên. Các plusnhà điều hành được nạp chồng để làm việc với Stringcác giá trị và các loại dữ liệu cơ bản khác (trừ Char và Boolean).

 // + toán tử cho các kiểu cơ bản toán tử fun plus (khác: Byte): Toán tử int fun plus (khác: Ngắn): Toán tử int fun plus (other: Int): Toán tử int fun plus (other: Long): Toán tử dài fun plus (other: Float): Float operator fun plus (other: Double): Double // cho toán tử nối chuỗi fun String? .plus (other: Bất kỳ?): String 

Bạn cũng có thể sử dụng +toán tử để làm việc với các kiểu do người dùng xác định (như các đối tượng) bằng plus()chức năng nạp chồng .

Đề xuất đọc: Quá tải toán tử Kotlin

Đây là bảng các toán tử số học và các hàm tương ứng của chúng:

Biểu hiện Tên chức năng Dịch sang
a + b thêm a.plus (b)
a - b dấu trừ a.minus (b)
a * b lần a.times (b)
a / b div a.div (b)
a% b mod a.mod (b)

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

Các toán tử gán được sử dụng để gán giá trị cho một biến. Chúng tôi đã sử dụng toán tử gán đơn giản =trước đây.

 val age = 5

Ở đây, 5 được gán cho biến tuổi bằng =toán tử.

Dưới đây là danh sách tất cả các toán tử gán và các hàm tương ứng của chúng:

Biểu hiện Tương đương với Dịch sang
a + = b a = a + b a.plusAssign (b)
a - = b a = a - b a.minusAssign (b)
a * = b a = a * b a.timesAssign (b)
a / = b a = a / b a.divAssign (b)
a% = b a = a% b a.modAssign (b)

Ví dụ: Toán tử chuyển nhượng

 fun main(args: Array) ( var number = 12 number *= 5 // number = number*5 println("number = $number") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 số = 60

Đề xuất Đọc: Quá tải các toán tử gán trong Kotlin.

3. Tiền tố một bậc và các toán tử tăng / giảm

Dưới đây là bảng các toán tử một ngôi, ý nghĩa của chúng và các hàm tương ứng:

Nhà điều hành Ý nghĩa Biểu hiện Dịch sang
+ Cộng một lần + a a.unaryPlus ()
- Dấu trừ một bậc (dấu đảo ngược) -a a.unaryMinus ()
! không (đảo ngược giá trị) ! a a.not ()
++ Tăng: tăng giá trị lên 1 ++ a a.inc ()
- Giảm: giảm giá trị đi 1 --a a.dec ()

Ví dụ: Toán tử đơn nguyên

 fun main(args: Array) ( val a = 1 val b = true var c = 1 var result: Int var booleanResult: Boolean result = -a println("-a = $result") booleanResult = !b println("!b = $booleanResult") --c println("--c = $c") )

Khi bạn chạy chương trình, đầu ra sẽ là:

 -a = -1 !b = false --c = 0

Đề xuất đọc: Quá tải các toán tử đơn nguyên

4. Toán tử So sánh và Bình đẳng

Dưới đây là bảng các toán tử bình đẳng và so sánh, ý nghĩa của chúng và các hàm tương ứng:

Nhà điều hành Ý nghĩa Biểu hiện Dịch sang
> lớn hơn a> b a.compareTo (b)> 0
< ít hơn a <b a.compareTo (b) <0
> = lớn hơn hoặc bằng a> = b a.compareTo (b)> = 0
<= nhỏ hơn hoặc bằng a <= b a.compareTo (b) <= 0
== bằng a == b a? .equals (b) ?: (b === null)
! = không bằng a! = b !(a?.equals(b) ?: (b === null))

Comparison and equality operators are used in control flow such as if expression , when expression , and loops .

Example: Comparison and Equality Operators

 fun main(args: Array) ( val a = -12 val b = 12 // use of greater than operator val max = if (a> b) ( println("a is larger than b.") a ) else ( println("b is larger than a.") b ) println("max = $max") ) 

When you run the program, the output will be:

 b is larger than a. max = 12 

Recommended Reading: Overloading of Comparison and Equality Operators in Kotlin

5. Logical Operators

There are two logical operators in Kotlin: || and &&

Here's a table of logical operators, their meaning, and corresponding functions.

Operator Description Expression Corresponding Function
|| true if either of the Boolean expression is true (a>b)||(a (a>b)or(a
&& true if all Boolean expressions are true (a>b)&&(a (a>b)and(a

Note that, or and and are functions that support infix notation.

Logical operators are used in control flow such as if expression , when expression , and loops .

Example: Logical Operators

 fun main(args: Array) ( val a = 10 val b = 9 val c = -1 val result: Boolean // result is true is a is largest result = (a>b) && (a>c) // result = (a>b) and (a>c) println(result) )

When you run the program, the output will be:

 true

Recommended Reading: Overloading of Logical Operators in Kotlin

6. in Operator

The in operator is used to check whether an object belongs to a collection.

Operator Expression Translates to
in a in b b.contains(a)
!in a !in b !b.contains(a)

Example: in Operator

 fun main(args: Array) ( val numbers = intArrayOf(1, 4, 42, -3) if (4 in numbers) ( println("numbers array contains 4.") ) )

When you run the program, the output will be:

 numbers array contains 4.

Recommended Reading: Kotlin in Operator Overloading

7. Index access Operator

Here are some expressions using index access operator with corresponding functions in Kotlin.

Expression Translated to
a(i) a.get(i)
a(i, n) a.get(i, n)
a(i1, i2,… , in) a.get(i1, i2,… , in)
a(i) = b a.set(i, b)
a(i, n) = b a.set(i, n, b)
a(i1, i2,… , in) = b a.set(i1, i2,… , in, b)

Example: Index access Operator

 fun main(args: Array) ( val a = intArrayOf(1, 2, 3, 4, - 1) println(a(1)) a(1)= 12 println(a(1)) ) 

When you run the program, the output will be:

 2 12

Recommended Reading: Kotlin Index access operator Overloading

8. Invoke Operator

Dưới đây là một số biểu thức sử dụng toán tử gọi với các hàm tương ứng trong Kotlin.

Biểu hiện Đã dịch sang
a() a.invoke()
a(i) a.invoke(i)
a(i1, i2,… , in) a.inkove(i1, i2,… , in)
a(i) = b a.set(i, b)

Trong Kotlin, dấu ngoặc đơn được dịch để gọi invokehàm thành viên.

Đọc đề xuất: Gọi quá tải toán tử trong Kotlin

Hoạt động Bitwise

Không giống như Java, không có toán tử bitwise và bithift trong Kotlin. Để thực hiện các tác vụ này, các chức năng khác nhau (hỗ trợ ký hiệu infix) được sử dụng:

  • shl - Đã ký sang trái
  • shr - Đã ký đúng ca
  • ushr - Quyền ca chưa ký
  • and - Bitwise và
  • or - Bitwise hoặc
  • xor - Bitwise xor
  • inv - Đảo ngược bit

Truy cập trang này để tìm hiểu thêm về Hoạt động Bitwise trong Kotlin.

Ngoài ra, không có toán tử bậc ba trong Kotlin không giống như Java.

thú vị bài viết...