Global package trong kiểm tra đóng gói là gì

Theo truyền thống chương trình đầu tiên của bạn viết ở bất cứ ngôn ngữ nào được gọi là chương trình "Hello World" - Một chương trình chỉ đơn giản là xuất ra dòng chữ

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

0 ra terminal. Hãy bắt đầu viết chương trình này bằng Go.

Đầu tiên tạo thư mục để lưu các phần mềm. Ví dụ như tạo thư mục như sau:

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

1. (Với

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

2 có nghĩa là thư mục của bạn) Từ terminal bạn có thể gõ các lệnh sau:

mkdir src/golang-book
mkdir src/golang-book/chapter2

Mở text editor và gõ theo nội dung sau:

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

Lưu ý chắc rằng bạn gõ đúng nội dung như Trên và lưu nó với tên

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

3 trong thư mục mà chúng ta vừa mới tạo. Mở lại terminal và gõ lệnh sau:

cd src/golang-book/chapter2
go run main.go

Bạn sẽ nhìn thấy dòng chữ

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

0 hiển thị trên terminal. Lệnh

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

5 sau đó là tên các file (mỗi file cách nhau bởi dấu cách

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

6Hello World` hiển thị thì bạn có thể bạn gõ sai gì đó trong chương trình (hãy kiểm tra lại và gõ cho đúng). Go compiler sẽ gợi ý cho bạn nơi mà bị lỗi. Giống như hầu hết các compiler, Go compiler khá gập khuôn và không chừa một lỗi nào.

Các đọc một chương trình Go

Hãy xem lại chương trình trên một cách chi tiết. Các chương trình Go được đọc từ trên xuống, từ trái qua phải. (giống như đọc một quyển sách). Dòng đầu tiên thế này:

package main

Dòng này được gọi là "khai báo package". Tất cả chương trình Go đều phải được bắt đầu bởi dòng khai báo package này. Package là cách mà Go sử dụng để tổ chức cấu trúc và tái sử dụng code. Có 2 loại chương trình Go: thực thi (executables) và thư viện (libraries). Chương trình thực thi là loại chương trình chúng ta có thể chạy trực tiếp từ terminal. (Trên Windows nó định dạng là file

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

7)Thư viện là một tập hợp code chúng ta đóng gói (package) lại với nhau, vì vậy chúng có thể sử dụng chúng trong một chương trình khác. Chúng ta đi chi tiết sau về thư viện, giờ thì chúng ta chỉ cần đảm bảo rằng chương trình của chúng ta có dòng khai báo package này.

Dòng kết tiếp là dòng trắng. Trong máy tính biểu diển dấu xuống dòng là một (hoặc vài) kí tự đặc biệt. Dấu dòng mới (newlines), dấu cách (space) dấu tab chúng ta gọi chung là khoảng trắng (whitespace) (bởi vì chúng ta không nhìn thấy nó). Go không quan tâm đến các khoảng trắng này. Chúng ta sử dụng chúng chỉ để dễ dàng đọc hơn. Tức là bạn bỏ dòng này thì chương trình vẫn chạy đúng như thường.

Giờ xem tiếp:

import "fmt"

Từ khóa

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

8 là các mà chúng ta include code từ một package khác để sử dụng trong chương trình của chúng ta. Package

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

9 (viết tắt của chữ format) chứa các hàm giúp chúng ta định dạng cho input và output. Dựa vào những gì chúng ta vừa tìm hiểu về các gói, bạn nghĩ các tệp của gói fmt sẽ chứa gì ở đầu chúng?

Lưu ý rằng chữ

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

9 ở trên được bao bằng đấu ngoặc kép

cd src/golang-book/chapter2
go run main.go

1. Dấu ngoặc kép được dùng để biểu diễn một string (chuỗi kí tự). Trong Go, string được biểu diễn bằng một dãy các kí tự (chữ, số, kí hiệu,...) có độ dài xác định. Chi tiết hơn về string sẽ được mô tả ở chương tiếp theo, bây giờ quan trọng là bạn nhớ được rằng dấu mở

cd src/golang-book/chapter2
go run main.go

1 thì phải được có dấu đóng

cd src/golang-book/chapter2
go run main.go

1 tương ứng theo sau đó, và bất cứ thứ gì nằm trong cặp ngoặc kép này được là nội dung của string. Quan trọng: nội dung string không bao gồm cặp dấu

cd src/golang-book/chapter2
go run main.go

1 này.

Dòng bắt đầu bằng

cd src/golang-book/chapter2
go run main.go

5 được xem là "comment". Go compiler sẽ bỏ qua các comment này. Nó được viết cho bạn và vì bạn (hoặc cho những người đọc source này) [giúp bạn ghi chú lại những gì bạn muốn nhắn nhủ cho người đọc source]. Go hỗ trợ 2 loại comment: loại 1 là comment bắt đầu bằng 2 dấu

cd src/golang-book/chapter2
go run main.go

5 cho đến hết dòng, loại 2 là comment bắt đầu bằng

cd src/golang-book/chapter2
go run main.go

7 và kết thúc bằng

cd src/golang-book/chapter2
go run main.go

8 có thể bao gồm nhiều dòng.

Bây giờ chúng ta xem cách khai báo một function:

func main() {
    fmt.Println("Hello World")
}

Functions là một khối trong chương trình Go. Nó có input, output và một chuỗi các bước gọi các câu lệnh được thực hiện theo đúng thứ tự. Tất cả các function được bắt đầu bằng từ khóa

cd src/golang-book/chapter2
go run main.go

9 theo sau là tên của function (trường hợp này là

package main

0), sau nữa là một danh sách các tham số được bao quanh bở cặp dấu ngoặc đơn

package main

1

package main

2, sau nữa là một kiểu dữ liệu trả về (có thể có hoặc không) cuối cùng là thân chương trình được bao bằng cặp ngoặc nhọn

package main

3

package main

4. Function này không có tham số, không có kết quả trả về, và chỉ có một lệnh. Tên chương trình

package main

0 là một tên đặc biệt, bởi vì nó là function mà sẽ được gọi khi chương trình thực hiện.

Chúng ta xét đến mảnh cuối cùng của chương trình là dòng:

    fmt.Println("Hello World")

Dòng lệnh này được tạo ra bởi 3 thành phần. Đầu tiên là chúng ta gọi tên function bên trong một package

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

9 tên là

package main

7 (đó là đoạn

package main

8,

package main

7 là viết tắt của chữ Print Line). Sau đó chúng ta tạo một string mới chứa các kí tự "Hello World" và gọi hàm (tiếng Anh là invoke, call hoặc execute) đó với string vừa được string này là tham số.

Đến đây, chúng ta có khá nhiều thuật ngữ mới, có thể bạn sẽ thấy hơi choáng ngợp. Nên đôi khi đọc to chương trình của bạn ra thành tiếng có thể giúp bạn hiểu hơn. Các "đọc" lại bằng lời chương trình của chúng ta như sau:

Tạo mới một chương trình thực thi được, tham chiếu đến thư viện

package main import "fmt" // this is a comment func main() { fmt.Println("Hello World") }

9 và chứa một function tên là

package main

0. Function này không có tham số, không trả về gì và thực hiện: Truy cập vào hàm

package main

7 trong thư viện

package main import "fmt" // this is a comment func main() { fmt.Println("Hello World") }

9 và gọi hàm này với một tham số - là chuỗi "Hello World".

package main

7 là hàm thực sự làm việc trong chương trình này của chúng ta. Bạn có thể đọc thêm mô tả về hàm này trong terminal bằng lệnh:

go doc fmt Println

Bạn sẽ thấy được đoạn mô tả sau:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Dịch:

Println sử dụng định dạng mặc định cho các toán hạn (tham số đầu vào) và ghi nó ra thiết bị xuất chuẩn (ở đây là terminal). Các dấu cách (space) được tự động thêm vào giữa các toán hạn và dấu xuống dòng được thêm vào cuối cùng. Nó trả về số lượng bytes đã ghi ra và các lỗi xảy ra nếu có.

Go là một ngôn ngữ được mô tả tài liệu rất tốt, nhưng ở mô tả này thì có vẻ hơi khó hiểu nếu bạn chưa từng làm quen với ngôn ngữ nào trước đó. Tuy vậy

import "fmt"

5 vẫn là một lệnh vô cùng hữu ích và là nơi mà bạn cần tìm khi có câu hỏi nào đó.

Quay trở lại với function này, tài liệu này nói rằng hàm

package main

7 sẽ gửi bất cứ cái gì bạn đưa cho ra thiết bị xuất chuẩn - đây là tên của đầu ra là terminal bạn đang làm mở. Đây là hàm giúp cho dòng chữ

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

0 được xuất ra màn hình.

Ở chương tiếp theo chúng ta sẽ tìm hiểu xem các Go lưu trữ và trình bày các thứ khác giống như chữ

package main 
import "fmt"
// this is a comment
func main() {
    fmt.Println("Hello World")
}

0 bằng cách tìm hiểu về các loại dữ liệu.