Golang đại pháp – 2.1 Tên trong Go
Go
50
golang
49
White

nhaancs viết ngày 08/01/2018

Bài viết được đăng tải đầu tiên tại: http://nhaancs.com/golang-dai-phap-2-1-ten-trong-go/
golang dai phap

2 - Cấu trúc chương trình

Go cũng giống như các ngôn ngữ khác, một chương trình lớn được xây dựng từ nhiều phần nhỏ. Biến được dùng để lưu trữ dữ liệu. Các biểu thức đơn giản kết hợp với nhau bằng các toán tử. Các kiểu dữ liệu cơ bản được tập hợp thành các kiểu tổng hợp như array và struct. Các biểu thức được dùng trong các câu lệnh, thứ tự thực hiện của chúng được điều khiển bằng các cấu trúc điều khiển như if, for. Các câu lệnh liên quan dược tách ra thành các function, thực hiện 1 nhiệm vụ và có thể tái sử dụng. Nhiều function liên quan được tập hợp lại trong 1 số file và package.

Chúng ta đã thấy các ví dụ của những chủ đề vừa nói ở trên trong phần 1. Trong phần này chúng ta sẽ tìm hiểu chi tiết hơn nữa những thành phần cơ bản của Go. Các ví dụ trong phần này được cố ý là cho đơn giản hoá để các bạn có thể tập trung vào ngôn ngữ mà không bị phân tâm bởi các thuật toán hay cấu trúc dữ liệu phức tạp.

Golang đại pháp – 2.1 Tên trong Go

Trong Go, tên của các function, biến, hằng số, kiểu, nhãn của câu lệnh (statement label) và package tuân theo một luật đơn giản: tên bắt đầu bằng chữ cái hoặc dấu gạch dưới và có thể chứa bất kỳ ký tự, số, gạch dưới khác. Tên phân biệt hoa thường, ví dụ heapSortHeapSort là hai tên khác nhau.

Go có 25 từ khoá được dùng cho cú pháp của ngôn ngữ và không thể dùng để đặt tên:

break, default, func, interface, select, case, defer, go, map, struct, chan, else, goto, package, switch, const, fallthrough, if, range, type, continue, for, import, return, var

Ngoài ra còn có 1 số tân khác được dùng cho các hằng số, kiểu và hàm có sẵn trong Go:

Hằng số:

true, false, iota, nil

Kiểu:

int, int8, int16, int32, int64 
uint, uint8, uint16, uint32, uint64, uintptr 
float32, float64, complex128, complex64 
bool, byte, rune, string, error

Hàm:

make, len, cap, new, append, copy, close, delete 
complex, real, imag 
panic, recover 

Những tên này bạn có thể dùng lại cho mục đích của mình nhưng hãy thận trọng vì chúng có thể gây nhầm lẫn sau này.

Nếu một thành phần (biến, hằng số, kiểu, ...) được khai báo bên trong hàm thì thành phần đó chỉ thuộc về phạm vi của hàm đó thôi. Nếu được khai báo bên ngoài hàm thì chúng có thể được truy cập từ tất cả các file thuộc package khai báo nó.

Nếu tên có ký tự đầu tiên là chữ cái viết hoa thì có nghĩa là thành phần đó được exported và có thể được truy cập bên ngoài package khai báo nó, giống như hàm Printf trong package fmt. Các tên viết thường chỉ có thể truy cập bên trong package của nó mà thôi.

Không có giới hạn cho chiều dài tên, nhưng theo qui ước thì chúng ta nên khai báo một tên ngắn gọn, phạm vi ảnh hưởng (scope) nhỏ. Thường thì phạm vi ảnh hưởng (scope) của tên càng lớn thì tên sẽ dài hơn và có ý nghĩa hơn.

Khi khai báo tên nhiều hơn 1 từ thì các lập trình viên Go dùng chuẩn "camel case" để định dạng tên. Bạn sẽ thấy các tên như QuoteRuneToASCIIparseRequestLine chứ không phải là quote_rune_to_ASCII hay parse_request_line. Các ký tự viết tắt như ASCII hay HTML luôn cùng viết hoa hoặc cùng viết thường: htmlEscape, HTMLEscape hay escapeHTML; không dùng escapeHtml.

Reference: The Go Programming Language

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

nhaancs

11 bài viết.
4 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 0
Bài viết được đăng tải đầu tiên tại: http://nhaancs.com/golangdaiphap23khaibaobien/ Khai báo với từ khoá var tạo ra 1 biến có kiểu xác định, gán...
nhaancs viết 6 tháng trước
2 0
Bài viết liên quan
White
16 0
Crawl dữ liệu Crawl là một vấn đề hay gặp trong quá trình làm software. Ví dụ lấy tin tức, tin giảm giá, vé xem phim... là những dạng của crawl. Mộ...
Thach Le viết hơn 2 năm trước
16 0
White
44 7
Là một người thường xuyên đọc Quora, có một điểm cá nhân tôi thấy rất ấn tượng ở quora chính là khả năng autocomplete với tốc độ ánh sáng. (Ảnh) ...
huydx viết 6 tháng trước
44 7
White
9 2
Makefile thực hiện một số thao tác thường dùng trong Go Khi làm project Go mình thường tạo một file Makefile dạng này: Lưu ý nhớ thay thành tên m...
Huy Trần viết 2 năm trước
9 2
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
11 bài viết.
4 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!