Ví dụ, nếu tôi có lớp dữ liệu sau:Có cách nào để sử dụng giá trị mặc định trên thông số không bắt buộc khi null được chuyển không?
data class Data(
val name: String = "",
val number: Long = 0
)
Và chức năng mà có thể trở lại null
:
fun newName(): String? {}
fun newNumber(): Long? {}
Tôi biết tôi có thể sử dụng sau đây để sử dụng giá trị của các chức năng nếu họ không phải là null
:
val newName = newName()
val newNumber = newNumber()
val data = Data(
if (newName != null) newName else "",
if (newNumber != null) newNumber else 0
)
Nhưng có cách nào để chỉ sử dụng giá trị mặc định được chỉ định trong con cấu trúc của lớp Data
khi các giá trị là null
?
tôi không thể tìm thấy bất cứ điều gì trong tài liệu, nhưng tôi đã hy vọng một cái gì đó như thế này sẽ làm việc:
val data = Data(newName()?, newNumber()?)
Nhưng điều đó không biên dịch.
Thay vì 'if (newName! = Null) newName khác" "' bạn chỉ có thể sử dụng 'newName?:" "'. Nó được gọi là toán tử elvis. – Mibac
@Mibac Oh, phải, tôi quên mất điều đó! Chắc chắn gọn gàng hơn, nhưng nó vẫn không sử dụng tham số mặc định được định nghĩa trong hàm tạo lớp. – Bryan