Quy ước đặt tên cho const


117

Tôi đang cố gắng xác định xem có quy ước đặt tên cho các tên constở Golang hay không.

Cá nhân tôi có xu hướng làm theo kiểu C và viết chúng bằng chữ hoa, nhưng tôi không tìm thấy gì trên trang này http://golang.org/doc/effective_go.html, trang này dường như liệt kê một số quy ước đặt tên cho ngôn ngữ.


5
Tôi muốn viết hằng số FOO_BAR_BAZtheo kiểu để dễ đọc, nhưng tiếc là điều đó ảnh hưởng đến khả năng hiển thị của hằng số và nó không phổ biến. Tôi vừa phải nuốt niềm tự hào của mình và chấp nhận quy ước ngay cả khi tôi không thích nó.
byxor

Câu trả lời:


131

Thư viện tiêu chuẩn sử dụng vỏ camel, vì vậy tôi khuyên bạn nên làm điều đó. Chữ cái đầu tiên là chữ hoa hay chữ thường tùy thuộc vào việc bạn muốn xuất hằng số.

Một vài ví dụ:

  • md5.BlockSize
  • os.O_RDONLY là một ngoại lệ vì nó được mượn trực tiếp từ POSIX.
  • os.PathSeparator

7
Điều quan trọng là phải xác định xem bạn có muốn constphần tử của mình tiếp xúc với các gói khác hay không. Nếu bạn sử dụng UpperCamelCasehoặc ALL_CAPSbạn sẽ xuất nó ra bên ngoài gói của mình. Vì lý do này, tôi bám vào lowerCamelCasecác biến const riêng tư và tôi nhớ lại đã đọc đề xuất này từ một người tương đối gần với dự án Go (hoặc thậm chí có thể trong tài liệu chính thức - tôi quên mất ở đâu).
weberc2

81

Nhận xét đánh giá mã Go

Trang này thu thập các nhận xét phổ biến được đưa ra trong quá trình đánh giá mã Go, do đó, các viết tắt có thể tham khảo giải thích chi tiết duy nhất. Đây là danh sách các lỗi phổ biến về giặt là, không phải là hướng dẫn về phong cách.

Bạn có thể xem đây là phần bổ sung cho http://golang.org/doc/effective_go.html .

Mũ hỗn hợp

Xem http://golang.org/doc/effective_go.html#mixed-caps . Điều này áp dụng ngay cả khi nó phá vỡ các quy ước trong các ngôn ngữ khác. Ví dụ: một hằng số chưa được báo cáo là maxLength không phải MaxLength hoặc MAX_LENGTH.


Lượt đi hiệu quả

Hỗn hợp

Cuối cùng, quy ước trong cờ vây là sử dụng hỗn hợp hoặc tài nguyên hỗn hợp hơn là sử dụng dấu gạch dưới để viết tên nhiều từ khóa.


Đặc tả ngôn ngữ lập trình Go

Số nhận dạng đã xuất

Một số nhận dạng có thể được xuất để cho phép truy cập vào nó từ một gói khác. Giá trị nhận dạng được xuất nếu cả hai:

  • ký tự đầu tiên của tên định danh là ký tự viết hoa Unicode (lớp Unicode "Lu"); và

  • định danh được khai báo trong khối gói hoặc nó là tên trường hoặc tên phương thức.

Tất cả các số nhận dạng khác không được xuất.


Sử dụng nắp hỗn hợp.


12

Ví dụ cụ thể. Lưu ý rằng việc khai báo kiểu trong hằng số (khi có liên quan) có thể hữu ích cho trình biên dịch.

// Only visible to the local file
const localFileConstant string = "Constant Value with limited scope"

// Exportable constant
const GlobalConstant string = "Everyone can use this"
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.