Golang đại pháp – 1.8 Tổng kết phần nhập môn
Go
41
golang
39
White

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

Bài viết được đăng tải đầu tiên tại: http://nhaancs.com/golang-dai-phap-1-8-tong-ket-phan-nhap-mon
golang dai phap

Trong phần này chúng ta đã tìm hiểu sơ qua một số thành phần cơ bản của Go, bên cạnh đó cũng còn các phần mà chúng ta chưa tìm hiểu hết. Bên dưới chúng ta sẽ tóm tắt ngắn gọn các thành phần bị bỏ qua, trước khi tìm hiểu chi tiết về chúng trong các phần sau.

Cấu trúc điều khiển: Hai cấu trúc điều khiển đã nói tới là iffor, nhưng còn một câu lệnh khác là switch:

switch coinflip() {
    case "heads":
        heads++
    case "tails":
        tails++
    default:
        fmt.Println("landed on edge!")
}

Kết quả của hàm coinflip() được so sánh với giá trị của từng case từ trên xuống dưới, các lệnh trong case khớp với kết quả đầu tiên sẽ được thực thi. Nếu không có case nào chính xác thì các lệnh trong case default sẽ được thực thi, default có thể đặt bất cứ vị trí nào. Khi một case được thực thi thì switch sẽ dừng lại và không nhảy xuống case tiếp theo như các ngôn ngữ khác, vì vậy ta không cần dùng break để dừng switch lại.

Switch có thể không cần toán hạng, chỉ đơn giản liệt kê danh sách các case, mỗi case là một biểu thức boolean:

func Signum(x int) int {
    // Tương đương với switch true {...
    switch {
        case x > 0:
            return +1
        default:
            return 0;
        case x < 0: 
            return -1 
    }
}

Giống như forif, switch có thể chứa một câu lệnh đơn giản như khai báo biến ngắn gọn, toán tử tăng giảm, gán giá trị, gọi hàm.

Câu lệnh breakcontinue thay đổi cấu trúc điều kiện. break điều khiển chương trình đến câu lệnh ngay bên dưới câu lệnh điều kiện for, switch, select gần nhất với nó. continue điều khiển chương trình thực thi vòng lặp tiếp theo của vòng lặp for gần nó nhất ngay lập tức.

Các câu lệnh có thể được dán nhãn để breakcontinue có thể nhảy tới, ví dụ như dùng break để thoát ra vài vòng lặp lồng nhau hay dùng continue để thực thi vòng lặp tiếp theo của vòng lặp for ngoài cùng. Go cũng cung cấp câu lệnh goto nhưng nó thường dùng cho tạo mã tự động, ít được lập trình viên dùng.

Named type: Khai báo type cho phép đặt tên cho kiểu có sẵn. Kiểu struct thường được đặt tên:

type Point struct {
    X, Y int
}

var p Point

Pointer (con trỏ): Pointer là giá trị chứa địa chỉ của một biến trong bộ nhớ. Trong một số ngôn ngữ như C, pointer khá là bá đạo; một số ngôn ngữ khác thì pointer chỉ đơn giản là reference chỉ có thể truyền qua truyền lại vậy thôi. Pointer trong Go nằm ở đâu đó mức giữa. Toán tử & trả về địa chỉ của một biến, còn * trả về giá trị của biến mà pointer trả tới.

Method (phương thức) và interface: Method là một function liên kết với một named type. Trong Go, method có thể được gắn vào bất cứ named type nào. Interface là 1 kiểu trừu tượng (abstract type) cho phép chúng ta xử lý các kiểu khác nhau theo cùng 1 cách dựa trên các method của chúng.

Package: Go cung cấp một thư viện chuẩn khổng lồ, bao gồm nhiều package, và cộng đồng cũng tạo ra rất nhiều package khác. Danh sách các package trong thư viện chuẩn được liệt kê tại https://golang.org/pkg và package của cộng đồng đóng góp tại https://godoc.org

Comment: Nến bạn cần ghi chú trên nhiều dòng thì có thể dùng /* ... */

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.
3 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Bài viết liên quan
White
7 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 hơn 1 năm trước
7 2
White
39 15
Go là gì? Dùng nó cho việc gì? Chắc hẳn đến thời điểm hiện tại, không ai là chưa nghe đến Go (hay còn gọi là Golang), một ngôn ngữ lập trình được ...
Huy Trần viết hơn 2 năm trước
39 15
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
11 bài viết.
3 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á!