Phương thức và hàm
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 10 trên 68.
Mặc dù cả phương thức (method) và hàm (function) đều thực hiện các thao tác trong Go, chúng có mục đích khác nhau và cách khai báo riêng. Hiểu rõ sự khác biệt này rất quan trọng để viết code rõ ràng, có tổ chức.
Một hàm hoạt động độc lập. Nó không thuộc về kiểu dữ liệu cụ thể nào:
func calculateArea(width, height float64) float64 {
return width * height
}Phương thức (method) được gắn với một kiểu cụ thể thông qua một receiver. Phương thức thuộc về kiểu đó và có thể truy cập dữ liệu của kiểu:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}Điểm khác biệt chính nằm ở cách bạn gọi chúng. Bạn gọi hàm (function) trực tiếp bằng tên, còn phương thức thì gọi trên các instance thuộc kiểu dữ liệu tương ứng bằng ký hiệu chấm. Mối liên kết này khiến phương thức phù hợp để định nghĩa các hành vi vốn thuộc về những kiểu dữ liệu tùy chỉnh của bạn, còn hàm phù hợp với các thao tác dùng chung không cần gắn với cấu trúc dữ liệu cụ thể.
Tự làm thử
Bài học này không có thử thách code.
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
1Luồng điều khiển nâng cao
Switch với `fallthrough`Thoát khỏi vòng lặp lồng nhauTiếp tục một vòng lặp cụ thểCâu lệnh `goto`Ôn tập: điều khiển vòng lặp nâng cao4Dự án: Danh sách việc cần làm đơn giản
Thiết lập dự ánThêm một việc cần làm2Struct và phương thức
Định nghĩa phương thức cho structReceiver giá trịReceiver con trỏChọn receiverPhương thức và hàmÔn tập: hành vi của struct5Tìm hiểu chuyên sâu về map
Map chứa structCon trỏ làm giá trị của mapKiểm tra map nilSo sánh các mapÔn tập: bộ đếm tần suất từ8Dự án: Quản lý hàng tồn kho đơn giản
Tổng quan dự ánKiểm tra hàng tồn kho3Interface (cơ bản)
Interface là gì?Định nghĩa interfaceTriển khai interfaceDùng kiểu interfaceInterface rỗngKhẳng định kiểuType switchÔn tập: hình dạng và hành viTự luyện tập: Trình biên dịch Go online