Kotlin: Public get private set var


125

Cách chính xác để xác định một var trong kotlin có setter công khai và setter riêng tư (chỉ có thể sửa đổi nội bộ) là gì?

Câu trả lời:


193
var setterVisibility: String = "abc" // Initializer required, not a nullable type
    private set // the setter is private and has the default implementation

Xem: Thuộc tính Getter và Setter


13
Lưu ý rằng private setphải trên một dòng mới.
Jasper Blues

29
... hoặc trên cùng một dòng, sau dấu chấm phẩy:var abc: String = ""; private set
Boris B.

4
Tuy nhiên, tôi không biết phải làm gì với một trường hàm tạo chính.
androidguy

2
@ user3175580 Điều này không thể thực hiện được. Sử dụng trường cục bộ bên trong phương thức khởi tạo chính và sau đó gán giá trị cho thuộc tính như "class Foo (_bar: String) {var bar: String = _bar}
D3xter 13/01/17

3
@JasperBlues ... nếu không, bạn cần thêm dấu chấm phẩy trước private set.
Moses Aprico


2

var name : String = "Peter"
    private set

Theo mặc định, tất cả các thuộc tính và chức năng đều được công khai trong Kotlin. Do đó setter phải được khai báo rõ ràng là private trong khi getter là public theo mặc định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.