Hướng dẫn về Kotlin cho người mới bắt đầu (Ví dụ)

Kotlin là gì?

Kotlin là một ngôn ngữ lập trình kiểu tĩnh mã nguồn mở chạy trên Java Máy ảo (JVM). Nó kết hợp Lập trình hướng đối tượng (OOP) và lập trình chức năng trong các nền tảng không hạn chế, tự cung cấp và đặc biệt. Nó cũng cho phép kết hợp các chức năng bằng các mã thu nhỏ. Kotlin là ngôn ngữ lập trình có mục đích chung được thiết kế bởi JetBrains.

Lịch sử của Kotlin

Dưới đây là những địa danh quan trọng trong lịch sử của Kotlin:

Năm Sự kiện
2016 Kotlin v1.0 đã ra mắt
2017 Thông báo của Google về sự hỗ trợ hạng nhất của kotlin trong Android
2018 Kotlin v1.2 đi kèm với tính năng bổ sung về phân phối mã giữa JVM và JavaScript
2019 Google công bố Kotlin là ngôn ngữ lập trình ưa thích dành cho Android Nhà phát triển ứng dụng
2021 Vào ngày 20 tháng 2021 năm 1.5.31, Kotlin vXNUMX đã được ra mắt.

Lý do sử dụng Kotlin

Dưới đây là một số lý do quan trọng khiến Kotlin được sử dụng rộng rãi:

  • Kotlin là một ngôn ngữ gõ tĩnh rất dễ đọc và viết.
  • Các chương trình Kotlin không yêu cầu dấu chấm phẩy trong chương trình của họ. Điều này làm cho mã dễ dàng và dễ đọc hơn.
  • Ngôn ngữ này cho phép trao đổi và sử dụng thông tin từ Java theo nhiều cách khác nhau. Hơn thế nữa, Java và mã Kotlin có thể cùng tồn tại trong cùng một dự án.
  • Hệ thống loại của Kotlin nhằm mục đích loại bỏ NullPointerException khỏi mã.
  • Bạn sẽ mất ít thời gian hơn để viết mã mới trong Kotlin. Việc triển khai và duy trì mã kotlin trên quy mô lớn thậm chí còn dễ dàng hơn.

Đặc điểm của Kotlin

Dưới đây là một số tính năng của Kotlin sẽ giúp bạn chắc chắn về lộ trình phát triển của ngôn ngữ lập trình.

Mã hóa cắt bớt:

Kotlin là ngôn ngữ lập trình dựa trên OOP, trong đó dòng mã có thể được cắt giảm tới 40%, điều này khiến Kotlin trở thành lựa chọn lý tưởng để phát triển phần mềm hoặc web.

Mã nguồn mở:

Kotlin dành cho Android sử dụng JVM và kết hợp các tính năng của OOP và lập trình hướng chức năng.

Biên dịch nhanh:

thật dễ dàng để biên dịch mã khi làm việc với Kotlin, mang lại hiệu suất tốt hơn cho việc phát triển Android và nó cũng sẽ giải thích loại chức năng dữ liệu nào có thể được sử dụng trong toàn bộ mã.

Chức năng mở rộng:

Kotlin có thể hỗ trợ nhiều chức năng mở rộng khác nhau mà không cần thực hiện bất kỳ thay đổi nào đối với mã. nó giúp làm cho mã hiện có trở nên hấp dẫn và tuyệt vời hơn đối với các nhà phát triển.

Ví dụ:

Fun String.removeFirstLastChar():
String = this.substring(1, this.length -1)

Đoạn code này sẽ hỗ trợ việc cắt bớt ký tự đầu tiên và cuối cùng của chuỗi, chúng ta có thể áp dụng như sau:

Val string1 = "Today is cloudy."
Val string2 = string1.removeFirstLastChar()

An toàn vô giá trị:

Trong Kotlin, hệ thống phân biệt giữa tham chiếu rỗng và tham chiếu không rỗng như trong ví dụ về Kotlin bên dưới.

Ví dụ: biến Chuỗi không thể giữ giá trị rỗng:

Var string1: String = "Today is Sunday"
String1 = null  // compilation error
To permit null, we can adjoin the nullable variable :
Var string2: String? = "Today is Sunday"
String2 = null
print(string2)

Có thể tương tác:

Mã Kotlin có thể được sử dụng bởi Javavà Java mã có thể được sử dụng với Kotlin. Vì vậy, nếu bạn có kiến ​​thức về Giáo sư lập trình, thật dễ dàng để chuyển sang phát triển Kotlin. Ngoài ra, nếu có một số ứng dụng được viết bằng Java, thì chúng có thể được sử dụng với môi trường của Kotlin.

Công cụ mạnh mẽ:

Như Java, Mã Kotlin cũng có thể được viết bằng IDE hoặc sử dụng giao diện dòng lệnh. Làm việc với IDE rất dễ dàng và lỗi cú pháp cũng giảm đáng kể. Đồng thời, khi bạn đang làm việc với giao diện dòng lệnh, mã phải được biên dịch trước.

Truyền thông minh:

Truyền thông minh về cơ bản giúp cắt giảm chi phí ứng dụng và cải thiện tốc độ hoặc hiệu suất của ứng dụng. Nó hoạt động dựa trên việc quản lý hiệu quả của mã bằng cách sử dụng kiểu ép kiểu hoặc các giá trị bất biến.

Ví dụ: nếu chuỗi được xác định thì đó là độ dài và số lượng và có thể được tìm thấy với sự trợ giúp của chức năng Smart Cast:

Val string1: Any = "Today is Monday"
when(string1)
{
is String  -> string1.length
Is Int -> string1.inc()
}

Chi phí áp dụng thấp:

Kotlin được các doanh nghiệp ưa thích vì mất chi phí áp dụng. Quan trọng nhất là nó rất dễ học đối với các nhà phát triển, đặc biệt là khi có nền tảng lập trình.

Thiết lập môi trường Kotlin

Sau đây là các bước giúp bạn thiết lập môi trường làm việc bằng cách cài đặt Kotlin.

Bước 1) Cài đặt Java

Như chúng ta đã thảo luận trước đó, Kotlin dựa trên Java, vì vậy bạn phải cài đặt Java đầu tiên khi dự định áp dụng Kotlin. Tham khảo của chúng tôi Java Hướng dẫn cài đặt.

Bước 2) Cài đặt Java IDEs

May mắn thay, có nhiều Java IDEs để lựa chọn. Ở đây chúng tôi đã cung cấp các liên kết tải xuống để giúp bạn dễ dàng hơn một chút.

Trong hướng dẫn Kotlin này, chúng ta sẽ sử dụng Eclipse.

Bước 3) Cài đặt Kotlin

Để cài đặt Kotlin trong Eclipse, đi tới phần Trợ giúp trong Eclipse Và nhấp vào Eclipse Tùy chọn thị trường.

Thiết lập môi trường Kotlin

Bây giờ, nhập từ khóa Kotlin vào hộp tìm kiếm. Nhấp vào tùy chọn Go để liệt kê plugin. Nó sẽ cung cấp cho bạn liên kết của plugin Kotlin, bạn cần cài đặt plugin từ liên kết đã cho.

Thiết lập môi trường Kotlin

Vui lòng khởi động lại Eclipse IDE, sau khi quá trình cài đặt hoàn tất. Bạn có thể tìm thấy biểu tượng phím tắt ở góc trên bên phải của Eclipse IDE. Đó là một phương pháp truy cập nhanh.

Thiết lập môi trường Kotlin

Một cách khác để truy cập Kotlin trong Eclipse IDE là, đi tới Windows, Perspectives, Mở Perspectives, sau đó chọn tùy chọn Others. Tại đây, bạn có thể kiểm tra danh sách các plugin được cài đặt sau, như được đưa ra bên dưới.

Thiết lập môi trường Kotlin

Sau khi bạn đã xác minh quá trình cài đặt Kotlin, hãy cùng chúng tôi tạo chương trình Kotlin đầu tiên trong bước tiếp theo.

Bước 4) Chương trình Kotlin đầu tiên

Bắt đầu với dự án Kotlin đầu tiên của bạn. Từ menu Tệp, chọn tùy chọn Mới, sau đó chọn các tùy chọn khác và bắt đầu với dự án Kotlin mới từ danh sách.

Thiết lập môi trường Kotlin

Bây giờ, bạn phải xác định tên cho dự án và bạn đã sẵn sàng làm việc với Kotlin.

Thiết lập môi trường Kotlin

Với những bước đơn giản này, bạn có thể dễ dàng tải xuống Eclipse và Kotlin trên hệ thống của bạn và viết ngay chương trình Kotlin đầu tiên của bạn.

Archicấu trúc của Kotlin

Một kiến ​​trúc được xây dựng tốt là điều quan trọng để ứng dụng mở rộng các tính năng và đáp ứng kỳ vọng của người dùng cuối. Kotlin có kiến ​​trúc riêng biệt và đặc biệt để phân bổ bộ nhớ và đạt được kết quả chất lượng cho các nhà phát triển và người dùng cuối.

Các coroutine và class của Kotlin thiết kế lõi theo cách tạo ra ít mã boilerplate hơn, khuếch đại hiệu suất và tăng cường hiệu quả. Có nhiều trường hợp trình biên dịch kotlin có thể phản ứng khác nhau, đặc biệt là khi nó đánh dấu nhiều loại ngôn ngữ khác nhau.

Archicấu trúc của Kotlin
Archicấu trúc của Kotlin

Trong sơ đồ kiến ​​trúc, rõ ràng là việc thực thi mã được thực hiện theo ba bước đơn giản.

  1. Ở bước đầu tiên, tệp “.kt” hoặc kotlin sẽ được thêm vào trình biên dịch.
  2. Ở bước thứ hai, trình biên dịch Kotlin chuyển đổi mã thành mã byte.
  3. Ở bước thứ ba, mã byte được đưa vào Java Máy ảo và được thực thi bởi JVM.

Khi một vài tệp mã byte hoạt động trên JVM, chúng sẽ tạo ra sự giao tiếp lẫn nhau giữa chúng, đó là lý do tại sao tính năng trong Kotlin được gọi là khả năng tương tác cho java ook ra đời

Quá trình chuyển đổi của Kotlin sang JavaScript xảy ra khi Kotlin nhắm mục tiêu JavaKịch bản.

Khi JavaMục tiêu của tập lệnh được chọn, bất kỳ mã Kotlin nào là một phần của thư viện chạy bằng Kotlin sau đó sẽ bị tràn JavaKịch bản. Tuy nhiên, Java Bộ công cụ phát triển (JDK) hoặc bất kỳ thư viện Java nào được sử dụng đều bị loại trừ.

Một tệp không phải Kotlin không được xem xét trong quá trình hoạt động như vậy. Trong khi nhắm mục tiêu JavaTệp .kt của tập lệnh được chuyển đổi thành ES5.1 bởi trình biên dịch Kotlin để tạo mã nhất quán cho JavaScript. Trình biên dịch Kotlin nỗ lực tạo ra kích thước đầu ra tối ưu, khả năng tương tác với mô-đun hiện có, chức năng tương tự với thư viện chuẩn và đầu ra là JavaCó thể đọc được văn bản.

Qua cuộc thảo luận, rõ ràng là Trình biên dịch Kotlin có thể tạo ra mã hiệu quả hơn, hiệu quả hơn và độc lập hơn, giúp tạo ra sản phẩm phần mềm có hiệu suất cao hơn nữa.

Biến Kotlin

Các biến được sử dụng để lưu trữ dữ liệu cần thao tác và tham chiếu trong chương trình. Về cơ bản, nó là một đơn vị lưu trữ dữ liệu và dán nhãn, chờ một bí danh lưu trữ để chương trình dễ đọc và dễ hiểu. Nói cách khác, chúng ta có thể nói rằng các biến là vật chứa để thu thập thông tin.

Trong Kotlin, tất cả các biến đều phải được khai báo. Tuy nhiên, nếu bất kỳ biến nào không được khai báo, thì nó sẽ xuất hiện lỗi cú pháp. Ngoài ra, khai báo biến xác định loại dữ liệu mà chúng ta cho phép lưu trữ trong biến. Trong Kotlin, các biến có thể được định nghĩa bằng cách sử dụng từ khóa val và var. Sau đây là cú pháp khai báo biến trong Kotlin:

Var day = "Monday"
Var number = 3

Ở đây, chúng ta đã khai báo biến cục bộ day có giá trị là “Monday' và có kiểu là Chuỗi và một số biến cục bộ khác có giá trị là 3 và có kiểu là Int vì ở đây hằng số có kiểu số nguyên là 3.

Biến cục bộ thường được khai báo và khởi tạo đồng thời. Chúng ta cũng có thể thực hiện một số thao tác nhất định trong khi khởi tạo biến Kotlin.

Chúng ta có thể thực hiện một thao tác trên biến có cùng kiểu dữ liệu, như ở đây num1 và num2 đều có cùng kiểu dữ liệu là Int, trong khi day có kiểu dữ liệu chuỗi. Vì vậy, nó sẽ hiển thị một lỗi. Đây là một kỹ thuật khác giúp bạn xác định các biến trong Kotlin.

var day : String = "GURU99"
var num : Int = 100

Hãy xem các từ khóa var và val khác nhau như thế nào.

Var :

Var giống như một biến chung được sử dụng trong bất kỳ ngôn ngữ lập trình nào và có thể được sử dụng nhiều lần trong một chương trình. Hơn nữa, bạn có thể thay đổi giá trị của nó bất cứ lúc nào trong một chương trình. Do đó, nó được gọi là biến có thể thay đổi.

Dưới đây là ví dụ về biến có thể thay đổi trong Kotlin:

var num1 = 10
Var num2 = 20
Num1 = 20
print(num1 + num2) // output : 40

Ở đây giá trị của num1 là 20, được ghi đè bởi giá trị trước đó của num1 là 10. Do đó, kết quả của num1 + num2 là 40 thay vì 30.

Giá trị:

Val giống như một biến hằng số và bạn không thể thay đổi giá trị của nó sau này trong chương trình, cũng không thể gán nhiều lần trong một chương trình và chỉ có thể sử dụng một lần trong một chương trình cụ thể. Do đó, nó được gọi là biến bất biến.

Dưới đây là ví dụ về chương trình Kotlin về các biến bất biến trong Kotlin:

Val num1 = 10
Var num2 = 20

Ở đây, giá trị của num1 là 10 không thể được ghi đè bằng giá trị mới của num1 là 20, vì nó thuộc loại val không đổi. Do đó, đầu ra là 30 thay vì 40.

Chú thích: Trong Kotlin, các biến bất biến được ưu tiên hơn các biến có thể thay đổi.

Các kiểu dữ liệu trong Kotlin

Các kiểu dữ liệu là tập hợp các giá trị có thể liên quan và mô tả các thao tác có thể được thực hiện trên chúng. Tương tự như các ngôn ngữ lập trình khác, Kotlin cũng có tập hợp các kiểu dữ liệu được xác định trước như Int, Boolean, Char, Double, Vv

Trong Kotlin, mọi loại dữ liệu đều được coi là một đối tượng.

Bây giờ, trong Hướng dẫn cơ bản về Kotlin này, hãy cùng tìm hiểu sâu hơn về các loại dữ liệu được xác định trước được sử dụng trong Kotlin.

Numbers :

Kotlin cung cấp một tập hợp các kiểu dữ liệu tích hợp được gọi là số, được phân loại thành Số nguyên và Số dấu phẩy động Numbers.

Số nguyên:

Số nguyên là loại số có bốn loại:

Kiểu Kích thước (bit) Giá trị tối thiểu giá trị tối đa
byte 8 -128 127
ngắn 16 -32768 32767
Int 32 -2,147,483,648 (-231) 2,147,483,647 (231 - 1)
dài 64 -9,223,372,036,854,775,808 (-263) 9,223,372,036,854,775,807 (263 - 1)

Dấu chấm động Numbers :

Dấu chấm động Numbers là những số không phải số nguyên mang một số giá trị thập phân.

Float: Float là giá trị dấu phẩy động có độ chính xác đơn 32 bit.

Ví dụ: var: Float x = 3.25600

Double: Double là giá trị dấu phẩy động có độ chính xác kép 64 bit.

Ví dụ: var: Double y = 2456.345587

Boolean :

Kiểu dữ liệu Boolean trong Kotlin có vai trò quan trọng trong việc biểu thị các giá trị logic. Chỉ có hai giá trị có thể có trong Boolean là đúng hoặc sai.

Ví dụ: ngày val = đúng

Val ngày2 = sai

Tính cách :

Các ký tự trong Kotlin được biểu diễn bằng từ khóa char. Trong Kotlin, dấu ngoặc đơn thể hiện việc khai báo char. Trong java, char đôi khi được sử dụng như những con số không thể có trong kotlin.

Ví dụ:

val onechar = 'x'
print(onechar) //  output : x
Val onedigit = '7'
print(onedigit) // output : 7

Chuyển đổi loại Kotlin hoặc Truyền loại Kotlin

Chuyển đổi kiểu là một thủ tục chuyển đổi một kiểu biến dữ liệu thành một biến kiểu dữ liệu khác. Nó rất lớn, còn được gọi là Type Casting.

Nổi bật là ở Java, kiểu chuyển đổi kiểu ẩn hoặc kiểu định kiểu ngầm của kiểu dữ liệu nhỏ hơn thành kiểu dữ liệu lớn hơn được hỗ trợ.

For Example : int abc = 15;
Long bcd = abc; // compiles successfully

Tuy nhiên, trong kotlin, việc chuyển đổi ngầm định kiểu dữ liệu nhỏ hơn sang kiểu dữ liệu lớn hơn hoàn toàn không được hỗ trợ, do đó kiểu dữ liệu int không thể được chuyển đổi ngầm thành kiểu dữ liệu dài.

For Example : var abc = 15
Val bcd : Long = abc // error

Tuy nhiên, trong Kotlin, việc chuyển đổi kiểu được thực hiện một cách rõ ràng. Ở đây có hướng dẫn về các hàm trợ giúp hướng dẫn chuyển đổi một biến kiểu dữ liệu sang biến kiểu dữ liệu khác.

Có một số chức năng trợ giúp nhất định được sở hữu trước để chuyển đổi loại dữ liệu này sang loại dữ liệu khác:

toInt()

toByte()

toShort()

toChar()

toLong()

toFloat()

đếnDouble()

For Example : var abc = 15
Val bcd : Long = abc.toLong() // compiles successfully

Kotlin Operaxoắn

Operators là các ký tự hoặc biểu tượng quan trọng và đặc biệt đảm bảo các phép toán trong toán hạng có biến và giá trị. Trong Kotlin, có một tập hợp các toán tử được sử dụng trong các phép toán khác nhau như phép toán số học, phép toán gán, phép toán so sánh, v.v.

toán học Operator :

Các toán tử số học được sử dụng để cộng, trừ, nhân, chia và mô đun.

Operator Ý nghĩa
+ Phép cộng (cũng được sử dụng để nối chuỗi)
Trừ Operator
* Phép nhân Operator
/ Phòng Operator
% Mô-đun Operator

Ví dụ:

var x = 10
var y = 20
var z = ( ( x + y ) * ( x + y ) ) / 2     

Kết quả đầu ra của đoạn mã sau là 45.

sự so sánh Operator :

Toán tử so sánh được sử dụng để so sánh hai giá trị, hai biến hoặc hai số. Nó được sử dụng với ký hiệu lớn hơn ( > ), nhỏ hơn ký hiệu ( < ) và bằng ký hiệu ( ==), không bằng ký hiệu ( != ), lớn hơn bằng ký hiệu ( >= ), nhỏ hơn bằng ký hiệu(<= ). Nó luôn cho kết quả đúng hoặc sai.

Ví dụ:

var x = 10
Var y =20
Var z = x < y // Output : true
Var w = x > y // Output : false
Var m = x == y // Output : false

Chuyển nhượng Operator :

Chuyển nhượng Operators được sử dụng để gán các giá trị được tính toán bằng số học. Nó được sử dụng với các ký hiệu như +=, -=, *=, /=, %=.

Ví dụ:

var x = 10
var y = 20
var x + = y // Output : 30
Var y - = x // Output : 10
Var x * = y // Output : 200

Tăng giảm Operator :

Toán tử tăng và giảm được sử dụng để tăng và giảm giá trị của biến hoặc số. Nó được sử dụng với sự trợ giúp của các ký hiệu như ++ và -.

Có hai loại tăng và giảm là tăng trước ++a, tăng sau a++, giảm trước –b, giảm sau b–.

Ví dụ:

var a = 10
var b = 20
var c = a++ // Output: 11
var d = b— //Output : 19     

Mảng Kotlin

Mảng là tập hợp các kiểu dữ liệu đồng nhất và là một trong những kiểu dữ liệu cơ bản nhất được sử dụng để lưu trữ cùng loại dữ liệu trong vị trí bộ nhớ liền kề. Mảng rất quan trọng đối với việc tổ chức dữ liệu bằng bất kỳ ngôn ngữ lập trình nào để dễ dàng tìm kiếm hoặc sắp xếp nhiều dữ liệu được lưu trữ ở một nơi duy nhất.

Trong Kotlin, mảng là sự cộng tác có thể thay đổi của các loại dữ liệu giống nhau chứ không phải là loại dữ liệu gốc.

Dưới đây là một số thuộc tính nhất định của mảng trong Kotlin

  • Kích thước của mảng không thể thay đổi sau khi khai báo.
  • Mảng trong Kotlin có thể thay đổi.
  • Mảng được lưu trữ ở các vị trí bộ nhớ liền kề.
  • Một mảng có thể được truy cập với sự trợ giúp của các chỉ mục như a[1], a[2], et – cetera.
  • Chỉ mục của một mảng bắt đầu bằng số 0 là a[XNUMX].

Trong Kotlin, một mảng có thể được định nghĩa theo hai phương thức khác nhau

Bằng cách sử dụng hàm arrayOf():

Trong Kotlin, các hàm thư viện được sử dụng chủ yếu. Một hàm thư viện như vậy là hàm arrayOf(), được sử dụng để xác định một mảng bằng cách truyền giá trị của các biến cho hàm.

Ví dụ: Khai báo kiểu ngầm định của mảng bằng hàm arrayOf()

val x = arrayOf(1,2,3,4,5,6,7,8,9)

Ví dụ: Khai báo kiểu rõ ràng của mảng bằng hàm arrayOf().

Val y = arrayOf<Int>(1,2,3,4,5,6,7,8,9)

Bằng cách sử dụng Trình xây dựng mảng:

Trong Kotlin có một lớp có tên là Array. Vì vậy, việc sử dụng mảng của hàm tạo để tạo mảng là hoàn toàn khả thi. Mảng trong hàm tạo chứa hai tham số chính.

Chỉ mục của một mảng trong Kotlin là gì?

Hàm trong đó một chỉ mục mảng được chấp nhận để trả về giá trị ban đầu của chỉ mục.

Ví dụ:

val abc = Array(7 , { i -> i*1})

Ở đây, giá trị của mảng là 7 và biểu thức lambda được sử dụng để khởi tạo các giá trị của phần tử.

Ngoài ra còn có nhiều phương pháp khác nhau để truy cập và sửa đổi mảng bằng các hàm nhất định. Do đó, có hai hàm thành viên get() và set(), được sử dụng để truy cập các đối tượng của mảng lớp.

Ví dụ:

val x = arrayOf(10,20,30,40,50,60,70,80,90)
val y = x.get(0) // Output 10

Ở đây, đầu ra là 10 vì giá trị ở chỉ số 0 của mảng là 10

Lưu ý: get() chỉ nhận các giá trị duy nhất

Ví dụ:

val x = arrayOf(10,20,30,40,50,60,70.80.90)
val y = x.set(2, 3) //

Đầu ra: 30 40

Ở đây, đầu ra là 30 và 40 vì giá trị ở chỉ mục 2 của mảng là 30 và ở chỉ mục 3 là 40.

Lưu ý: set() lấy nhiều giá trị của một mảng.

Chuỗi Kotlin

Chuỗi là kiểu dữ liệu cơ bản trong bất kỳ ngôn ngữ lập trình nào. Một chuỗi không là gì ngoài một chuỗi các ký tự. Lớp String đại diện cho các chuỗi ký tự. Trong Kotlin, tất cả các chuỗi đều là đối tượng của lớp String, có nghĩa là các hằng chuỗi được triển khai dưới dạng phiên bản của lớp.

Cú pháp:

 Val myString = "Hey there!"

Bộ sưu tập Kotlin

Một bộ sưu tập chứa một số đối tượng cùng loại và những đối tượng này trong bộ sưu tập được gọi là phần tử hoặc mục. Bộ sưu tập có thể giúp lưu trữ, truy xuất, thao tác và tổng hợp dữ liệu.

Các loại bộ sưu tập:

Bộ sưu tập bất biến

Loại bộ sưu tập này hỗ trợ các chức năng chỉ đọc. Người ta không thể sửa đổi các yếu tố của nó.

Các phương pháp bao gồm:

  • Danh sách – listOf() và listOf ()
  • Đặt – setOf()
  • Bản đồ – mapOf()

Bộ sưu tập có thể thay đổi

Nó hỗ trợ cả chức năng đọc và ghi.

Các phương pháp bao gồm

  • Danh sách – mutableListOf(), arrayListOf() và ArrayList
  • Đặt – mutableSetOf(), hashSetOf()
  • Bản đồ – mutableMapOf(), hashMapOf() và HashMap

Hàm Kotlin

Các hàm trong bất kỳ ngôn ngữ lập trình nào đều là một nhóm các câu lệnh tương tự được chỉ định để thực hiện một tác vụ cụ thể. Các hàm cho phép chương trình chia nó thành nhiều khối mã nhỏ khác nhau. Việc phân chia mã này làm tăng khả năng đọc mã, khả năng sử dụng lại mã và giúp chương trình dễ quản lý.

Vì Kotlin được biết đến như một ngôn ngữ gõ tĩnh. Ở đây, từ khóa 'fun' được sử dụng để khai báo một hàm. Trong Kotlin, có hai loại hàm chỉ phụ thuộc vào tính khả dụng của nó trong thư viện chuẩn hoặc định nghĩa của người dùng. Họ đang:

  • Chức năng thư viện tiêu chuẩn
  • Hàm do người dùng xác định

Chức năng Kotlin

Hàm Kotlin

Bây giờ, chúng ta hãy thảo luận chi tiết về chúng bằng các ví dụ về mã Kotlin.

Chức năng thư viện tiêu chuẩn

Chúng là các hàm thư viện tích hợp có thể được xác định ngầm và có sẵn để sử dụng.

Ví dụ 2:

fun main(args: Array<String>){  
var number = 9  
var result = Math.sqrt(number.toDouble())  
print("$result")  
}  

Đầu ra:

3.0

sqrt() là hàm được xác định trong thư viện trả về căn bậc hai của một số.

Hàm print() in thông báo ra luồng đầu ra tiêu chuẩn.

Hàm do người dùng xác định

Đúng như tên gọi, các hàm này thường do người dùng tạo ra và chúng có thể được sử dụng để lập trình nâng cao.

Ở đây, các hàm được khai báo bằng từ khóa 'fun'.

Ví dụ 3:

fun functionName(){
//body of the code
}

Ở đây, chúng ta gọi hàm để chạy mã bên trong phần thân functionName()

Ví dụ về hàm Kotlin:

fun main(args: Array<String>){  
    sum()  
    print("code after sum")  
}  
fun sum(){  
    var num1 =8  
    var num2 = 9  
    println("sum = "+(num1+num2))  
}  

Đầu ra:

tổng = 17

mã sau tổng

Xử lý ngoại lệ trong Kotlin

Ngoại lệ trong lập trình được định nghĩa là sự cố thời gian chạy xảy ra trong chương trình, khiến chương trình bị chấm dứt. Sự cố này có thể xảy ra do dung lượng bộ nhớ ít hơn, mảng không liên kết, các điều kiện như chia cho 0. Để hạn chế các loại vấn đề này trong quá trình thực thi mã, việc xử lý ngoại lệ được sử dụng.

Xử lý ngoại lệ được định nghĩa là kỹ thuật xử lý các vấn đề thời gian chạy và cũng duy trì luồng chương trình trong quá trình thực thi.

Kotlin sử dụng biểu thức 'ném' để ném một đối tượng ngoại lệ. Ở đây tất cả các lớp ngoại lệ đều là hậu duệ của lớp Throwable.

Ném MyException(“ném ngoại lệ”)

Có bốn loại ngoại lệ trong xử lý ngoại lệ. Họ đang:

  • thử - Khối này chứa các câu lệnh có thể tạo ra ngoại lệ. Nó luôn luôn được theo sau bởi một trong hai là bắt hoặc cuối cùng hoặc cả hai.
  • bắt - nó bắt một ngoại lệ được ném ra từ khối thử.
  • cuối cùng - Nó luôn kiểm tra xem ngoại lệ có được xử lý hay không.
  • ném - Nó được sử dụng để ném một ngoại lệ một cách rõ ràng.

Cố gắng bắt:

Trong khối try-catch trong xử lý ngoại lệ, khối try bao quanh mã, mã này có thể ném ra một ngoại lệ và khối bắt sẽ bắt biểu thức và xử lý nó.

Cú pháp khối try Catch:

try{    
//code with exception    
}catch(e: SomeException){  
//code handling exception  
}    

Cú pháp thử với khối cuối cùng

try{    
//code with exception    
}finally{  
// code finally block  
}   

Cuối cùng:

Trong Kolin, khối cuối cùng luôn kiểm tra xem ngoại lệ có được xử lý hay không, khiến nó trở thành một tuyên bố rất quan trọng về xử lý ngoại lệ.

Ví dụ 4:

Trong đoạn mã này, ngoại lệ xảy ra và nó được xử lý.

fun main (args: Array<String>){  
    try {  	
        val data =  9/ 0  
        println(data)  
    } catch (e: ArithmeticException) {  
        println(e)  
    } finally {  
        println("finally block executes")  
    }  
    println("write next code")  
}  

Đầu ra:

java.lang.ArithmeticException: / by zero
finally block executes
write next code

Phi:

Khối ném ném một ngoại lệ rõ ràng. Hơn nữa, nó được sử dụng để ném các ngoại lệ tùy chỉnh.

Cú pháp:

Throw SomeException()

Throw SomeException()

Ví dụ:

fun main(args: Array<String>) {
    try{
        println("Exception is not thrown yet")
        throw Exception("Everything is not well")
        println("Exception is thrown")
    }
    catch(e: Exception){
        println(e)

    }
    finally{
        println("You can't ignore me")
    }
}

Đầu ra:

Ví dụ về Kotlin

Kotlin Null An toàn

Các loại hệ thống hỗ trợ Kotlin chủ yếu phân biệt giữa các tham chiếu có thể mang tham chiếu rỗng và các loại tham chiếu không thể mang tham chiếu rỗng. Kotlin là ngôn ngữ an toàn null nhằm mục đích loại bỏ ngoại lệ con trỏ null hoặc tham chiếu null khỏi mã, được chủ ý gọi là A Billion Dollar sai lầm.

Trở ngại thông thường nhất của nhiều người ngôn ngữ lập trình là khi truy cập thành viên của tham chiếu null, kết quả là NullPointerException, có thể là do !! toán tử hoặc hàm tạo này được sử dụng ở một nơi khác và được truyền ở một điểm mã khác. Thuộc tính nullable yêu cầu xác nhận kiểm tra null mỗi lần trước khi sử dụng.

Trong Kotlin, hệ thống phân biệt giữa tham chiếu rỗng và tham chiếu không rỗng.

Ví dụ: biến Chuỗi không thể giữ giá trị rỗng:

Ví dụ 5:

fun main(args: Array<String>){
    var x: String = "GURU99 is the only place where you will get maximum technical content!" // Not Null by default
    println("x is : $x")
    // You cannot assign null variable to not-nullable variables 
    // a=null // it will give compilation error
    var y: String? = "Thanks for visiting GURU99" 
// Nullable Variable
    println("y is : $y")
    y = null
    println("y is : $y")
}

Đầu ra:

Kotlin Null An toàn

OOP của Kotlin

Phương pháp lập trình hướng đối tượng cho phép một đoạn mã phức tạp được chia thành các khối mã nhỏ hơn bằng cách tạo ra các đối tượng. Các đối tượng này có chung hai đặc điểm: trạng thái và hành vi.

Dưới đây là một số thành phần OOP mà chúng ta sẽ thảo luận bằng các ví dụ về mã Kotlin:

  • Lớp và đối tượng
  • Người xây dựng
  • di sản
  • Lớp trừu tượng

OOP của Kotlin

Lớp học trong Kotlin

Việc đầu tiên trước khi tạo một đối tượng, chúng ta cần định nghĩa một lớp còn được gọi là bản thiết kế cho đối tượng.

Cú pháp:

class ClassName {
    // property
    // member function
    ... .. ...
}

Các đối tượng trong Kotlin

Trong khi xác định một lớp, chúng ta chỉ xác định các thông số kỹ thuật cho đối tượng, không có tham số nào khác như bộ nhớ hoặc bộ nhớ được phân bổ.

Cú pháp:

var obj1 = ClassName()

Trình xây dựng trong Kotlin

Hàm tạo là một cách để khởi tạo các thuộc tính của lớp. Đó là một hàm thành viên được gọi khi một đối tượng được khởi tạo. Nhưng trong Kotlin, nó hoạt động khác.

Có hai loại hàm tạo trong Kotlin:

Trình xây dựng trong Kotlin

Trình xây dựng trong Kotlin

Hàm tạo chính: Cách tối ưu hóa để khởi tạo một lớp

Cú pháp:

class myClass(valname: String,varid: Int) {  
    // class body  
}  

Hàm tạo phụ: Giúp thêm logic khởi tạo

Kế thừa Kotlin

Sự kế thừa xảy ra khi một số thuộc tính của lớp cha được lớp con thu nhận. Kế thừa được cho phép khi hai hoặc nhiều lớp có cùng thuộc tính.

Cú pháp:

open class ParentClass(primary_construct){
    // common code
  }class ChildClass(primary_construct): ParentClass(primary_construct_initializ){
    // ChildClass specific behaviours
  }

Lớp trừu tượng trong Kotlin

Lớp trừu tượng là lớp không thể khởi tạo được nhưng chúng ta có thể kế thừa các lớp con từ chúng. Từ khóa 'trừu tượng' được sử dụng để khai báo một lớp trừu tượng.

Ví dụ 6:

  open class humanbeings { 
    open fun Eat() { 
        println("All Human being Eat") 
    } 
} 
abstract class Animal : humanbeings() { 
    override abstract fun Eat() 
} 
class Cat: Animal(){ 
    override fun Eat() { 
        println("Cats also loves eating") 
    } 
} 
fun main(args: Array<String>){ 
    val lt = humanbeings() 
    lt.Eat() 
    val d = Cat() 
    d.Eat() 
} 

Đầu ra:

Lớp trừu tượng trong Kotlin

Hiện tại và tương lai của Kotlin

Hiện tại:

  • Nhiều công ty thích Netflix, Pinterest và Corda đang sử dụng Kotlin để tạo ra những Android ứng dụng.
  • Chỉ trong khoảng thời gian ngắn từ 2016 đến 2017, Kotlin đã trở nên rất phổ biến với các tính năng lập trình tuyệt vời.
  • Năm 2017, Google đã công bố Kotlin là ngôn ngữ lập trình chính thức để phát triển Android.
  • Bạn có thể nhanh chóng thay thế Java mã với Kotlin vì nó có thể tương tác 100% với Java và Android.

Tương lai:

  • Phát triển trò chơi đa nền tảng
  • Phát triển ứng dụng di động đa nền tảng
  • Tập lệnh phía dịch vụ và microservice
  • học máy & phân tích dữ liệu

Tổng kết

  • Kotlin là ngôn ngữ lập trình được JetBrains đề xuất vào năm 2010 cho các ứng dụng đa nền tảng theo giấy phép Apache 2.0.
  • Cái tên Kotlin có nguồn gốc từ tên của Đảo Kotlin tương ứng với tên của Java theo tên của một hòn đảo có tên là Java.
  • Năm 2016 Kotlin phiên bản đầu tiên v1.0 được ra mắt
  • Các chương trình Kotlin không yêu cầu dấu chấm phẩy trong chương trình của họ. Điều này làm cho mã dễ dàng và dễ đọc hơn.
  • Kotlin dành cho Android nhà phát triển là ngôn ngữ lập trình dựa trên OOP, trong đó dòng mã có thể được cắt giảm tới 40%, điều này khiến Kotlin trở thành lựa chọn lý tưởng để phát triển phần mềm hoặc web.
  • Trong Kotlin, tất cả các biến phải được khai báo bằng từ khóa var và val.
  • Tương tự như các ngôn ngữ lập trình khác, Kotlin cũng có tập hợp các kiểu dữ liệu được xác định trước như Int, Boolean, Char, Double, Vv
  • Trong Kotlin, có một tập hợp các toán tử được sử dụng trong các phép toán khác nhau như phép toán số học, phép gán, phép toán so sánh, v.v.
  • Trong Kotlin, mảng là sự cộng tác có thể thay đổi của các loại dữ liệu giống nhau chứ không phải là loại dữ liệu gốc.
  • Trong Kotlin, mảng được xác định bằng hai phương thức – ArrayOF() và Constructor.
  • Kotlin là ngôn ngữ an toàn null giúp loại bỏ ngoại lệ con trỏ null hoặc tham chiếu null khỏi mã, được cố tình gọi là A Billion Dollar sai lầm.