Menu
CoddyTech

Chọn receiver

Thuộc phần Logic và luồng điều khiển trong hành trình GO của Coddy. Bài học 9 trên 68.

Giờ đây, khi đã hiểu cả receiver giá trị và receiver con trỏ, câu hỏi quan trọng là: khi nào bạn nên dùng mỗi loại? Quyết định phụ thuộc vào việc phương thức cần làm gì với receiver.

Dùng pointer receiver khi phương thức cần chỉnh sửa struct gốc. Vì pointer receiver hoạt động với instance struct thực tế, mọi thay đổi bên trong phương thức sẽ vẫn được giữ lại sau khi phương thức trả về. Điều này rất cần thiết với các phương thức cập nhật trường, thay đổi trạng thái hoặc thực hiện thao tác cần tác động đến dữ liệu gốc.

Dùng bộ nhận giá trị khi phương thức chỉ cần đọc dữ liệu từ struct mà không thay đổi dữ liệu đó. Bộ nhận giá trị hoạt động trên một bản sao, nên rất phù hợp với các phương thức tính giá trị, định dạng đầu ra hoặc thực hiện thao tác không cần sửa đổi struct gốc. Chúng cũng giúp bảo đảm an toàn vì dữ liệu gốc luôn được giữ nguyên.

Quy tắc chung: nếu phương thức của bạn thay đổi struct, hãy dùng receiver con trỏ. Nếu phương thức chỉ đọc dữ liệu từ struct, hãy dùng receiver giá trị. Cách này giúp làm rõ mục đích của code và ngăn dữ liệu của bạn bị thay đổi ngoài ý muốn.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Go online