Chuyển đến nội dung chính

Bài đăng

Đang hiển thị bài đăng từ Tháng 5, 2020

Sự khác nhau giữa let, apply, with, run và also trong Kotlin

Với những ai đã sử dụng Kotlin để phát triển ứng dụng, chắc hẳn đã không ít lần sử dụng các standard functions run, with, let, also và apply. Để hiểu và sử dụng thành thục chúng không phải là dễ. Và dưới đây là những điều đúc kết lại được. https://viblo.asia/p/su-khac-nhau-giua-let-apply-with-run-va-also-trong-kotlin-RQqKLNdml7z Scoping functions Có thể hiểu đơn giản, scoping function là phạm vi ảnh hưởng nhất định của một hàm. Nó là điều cốt lõi để phân biệt giữa các scoping functions: run, with, T.run, T.let, T.also và T.apply. Dưới đây là minh hoạ phạm vi của hàm run: fun test ( ) { var mood = "I am sad" run { val mood = "I am happy" println ( mood ) // I am happy } println ( mood ) // I am sad } Ở trên, ta có thể thấy rõ ràng trong phạm vi của hàm run, biến mood đã được định nghĩa lại trước khi in ra mà không làm ảnh hưởng tới phần khác của chương trình 3 attributes of scoping functions 1.Normal vs. extension fun...

Null Safety – Kiểm tra biến null an toàn trong Kotlin

Non-null types – Kiểu dữ liệu không thể null và Nullable types – Kiểu dữ liệu có thể null Non-null types – Kiểu dữ liệu không thể null https://cungdev.com/kiem-tra-bien-null-kotlin/ Ta đã biết cách khai báo biến kèm theo giá trị khởi tạo: 1 var name : String = "Duong Vu" Giờ ta thử gán cho biến name ở trên giá trị null xem sao: 1 name = null Ta sẽ nhận đc ngay 1 thông báo lỗi  Null cannot be a value of a non-null type String.  Tức là giá trị null không thể được gán cho 1 biến có kiểu  non-null type String.  Ở bài trước, mình đã trình bày về các kiểu dữ liệu cơ bản. Tuy nhiên các kiểu dữ liệu đó đều là các kiểu  non-null type , có nghĩa là  không chấp nhận giá trị null . Ok, rắc rối thật đấy, không cho ta gán giá trị null thì ta thử không gán giá trị gì xem nào 😀 1 2 var name : String print ( "name = $name" ) Giờ thì lại nhận đc thông báo thế này:  variable ‘name’ must be initialized , tức là biến  name  phải được gán giá trị...