Go Package

Trong bài học này chúng ta sẽ tìm hiểu cách tạo một package sử dụng Golang. Package này có tên là firstpackage và sẽ chứa một hàm public và một hàm private. Hàm public của một package có thể được sử dụng bởi một package khác, ngược lại các hàm private thì chỉ có thể được sử dụng bên trong package đó (có thể sử dụng ở file khác với file mà hàm được định nghĩa tuy nhiên vẫn cần cùng package).

Tạo Mới Package

Trên cửa sổ dòng lệnh chúng ta sẽ tạo một thư mục với tên mypackage:

$ mkdir $GOPATH/src/github.com/user/mypackage

Và tạo tập tin test.go trong thư mục mới tạo ra với nội dung sau:

// Package stringutil contains utility functions for working with strings.
package mypackage

// Reverse returns its argument string reversed rune-wise left to right.
func TestPublicFunc(s string) string {
    return "Hello from TestPublicFunc - ", testPrivateFunc(s)
}

func testPrivateFunc(s string) string {
    return "Hello from testPrivateMethod"
}

Ở trên chúng ta có một hàm TestPublicFunc là hàm public vì tên hàm này được bắt đầu bằng chữ in hoa và một hàm testPrivateFunc là hàm private vì hàm này được bắt đầu bằng chữ in thường.

Build và Install Package

Để build package mytpackage ở trên bạn chạy câu lệnh sau:

$ cd $GOPATH/src/github.com/user && go build mypackage

Câu lệnh trên sẽ tạo ra tập tin mypackage trong thư mục $GOPATH/src/github.com/user/mypackage/. Để install package bạn cần chạy câu lệnh:

$ cd $GOPATH/src/github.com/user/ && go install mypackage

Lúc này Go sẽ tạo tậptin mypackage bên trong thư mục $GOPATH/pkg/.

Import Package

Bây giờ trong tập tin hello_world.go chúng ta có thể import package mới tạo ra và sử dụng như sau:

package main
import "fmt"
import "github.com/user/mypackage"
func main() {
    fmt.Printf(mypackage.TestPublicFunc())
}

Trong Go chúng ta sử dụng câu lệnh import để tải package muốn sử dụng vào file hiện tại. Ngoài ra nếu sử dụng nhiều câu lệnh import chúng ta có thể gộp lại thành một câu lệnh duy nhất:

import (
    "fmt"
    "github.com/user/mypackage"
)

Cú pháp import như trên đây còn được gọi là factored import.

Lúc này khi buld lại rồi chạy chương trình Hello World ở trên bạn sẽ thấy kết quả hiển thị như sau:

Hello from TestPublicFunc = Hello from testPublicFunc

Tuy nhiên nếu bạn thử thay đổi code bên trong main() thành như sau (lưu ý chữ cái đầu tiên của hàm testPublicFunc() là chữ in thường):

fmt.Printf(mypackage.testPublicFunc())

Thì khi chạy chương trình máy tính sẽ báo lỗi vì hàm testPublicFunc() là hàm private của package mpackage.

Trước khi kết thúc bài học này thì có một lưu ý nhỏ dành cho các bạn đó là khi bạn import một package khác vào trong source code của chương trình chính thì khi bạn build (hoặc install) chương trình chính này thì các package được import cũng sẽ tự động được build và install.

Go Lập Trình
Thêm Bình Luận: