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

Bài đăng

Hiển thị các bài đăng có nhãn sealed class

[Kotlin] Sử dụng Sealed Class

1. Tại sao phải dùng Sealed  class trong Kotlin? Hàm thực hiện 1 nhiệm vụ, nhưng tham số đầu vào có thể là các đối tượng khác nhau (Ví dụ hàm tihns khoảng cách, hàm tính tổng...). Với mỗi đối tượng đầu vào khác nhau, hàm thực hiện những cách tính khác nhau để ra kết quả cuôi cùng (khoảng cách, tổng...). Thông qua Sealed Class giúp việc khai báo hàm trở nên đơn giản hơn bằng cách gói gọn các đối tượng đầu vào bằng một Lớp khép kính (Sealed Class) 2. Ví dụ: sealed class Expr data class Const ( val number : Double ) : Expr ( ) data class Sum ( val e1 : Expr , val e2 : Expr ) : Expr ( ) object NotANumber : Expr ( ) fun eval ( expr : Expr ) : Double = when ( expr ) { is Const -> expr . number is Sum -> eval ( expr . e1 ) + eval ( expr . e2 ) NotANumber -> Double . NaN // the `else` clause is not required because we've covered all the cases } =>> Thông qua Sealed Class hàm eval(expr: Expr) có