size
dstgo/size là một thư viện rất tiện lợi để chuyển đổi qua lại giữa chuỗi và kích thước file
Địa chỉ kho lưu trữ: dstgo/size: Fast conversion between file size and string (github.com)
Địa chỉ tài liệu: dstgo/size: Fast conversion between file size and string (github.com)
Cài đặt
$ go get github.com/dstgo/sizeSử dụng
const (
B Size = 1
KB = B * 1024
MB = KB * 1024
GB = MB * 1024
TB = GB * 1024
PB = TB * 1024
)type SizeMeta struct {
Data float64
Unit Size
}Thư viện này sử dụng khá đơn giản, chỉ có hai hàm được công khai
func ParseSize(str string) SizeMetaParseSize chuyển đổi chuỗi thành một cấu trúc SizeMeta, lưu trữ kích thước dữ liệu và đơn vị
func ParseTargetSize(str string, size Size) SizeMetaParseTargetSize chuyển đổi chuỗi thành SizeMeta với kích thước chỉ định
Ví dụ như sau:
package main
import (
"fmt"
"github.com/dstgo/size"
)
func main() {
parseSize := size.ParseSize("1.2MB")
fmt.Printf("%+v\n", parseSize)
fmt.Printf("%+v\n", parseSize.Round(1))
parseSize1 := size.ParseSize("2.3-asdajl")
fmt.Printf("%+v\n", parseSize1)
targetSize := size.ParseTargetSize("2.65MB", size.KB)
fmt.Printf("%+v", targetSize)
fmt.Printf("%+v", targetSize.String())
}Sau khi chuyển đổi có thể sử dụng phương thức Round để sửa đổi số chữ số thập phân được giữ lại, cũng có thể sử dụng phương thức String để lấy dạng chuỗi của nó, đầu ra ví dụ như sau
1.20MB
1.2
2713.60KBCác phương thức hữu ích
// Làm tròn số chữ số thập phân
func (s SizeMeta) Round(n int) SizeMeta
// Chuyển đổi thành chuỗi
func (s SizeMeta) String() string
// Chuyển đổi thành bytes
func (s SizeMeta) Bytes() int64Ví dụ bổ sung
package main
import (
"fmt"
"github.com/dstgo/size"
)
func main() {
// Chuyển đổi từ chuỗi
s1 := size.ParseSize("100MB")
fmt.Println(s1.String()) // 100.00MB
// Chuyển đổi với đơn vị mục tiêu
s2 := size.ParseTargetSize("1GB", size.MB)
fmt.Println(s2.String()) // 1024.00MB
// Làm tròn
s3 := size.ParseSize("1.56789GB")
fmt.Println(s3.Round(2).String()) // 1.57GB
// Chuyển đổi thành bytes
s4 := size.ParseSize("1KB")
fmt.Println(s4.Bytes()) // 1024
}Best Practices
- Kiểm tra đầu vào: Đảm bảo chuỗi đầu vào có định dạng hợp lệ
- Sử dụng Round: Sử dụng Round để làm tròn kết quả cho dễ đọc
- Đơn vị phù hợp: Chọn đơn vị phù hợp cho mục đích sử dụng
- Xử lý lỗi: Kiểm tra kết quả sau khi parse để đảm bảo chuyển đổi thành công
Kết luận
size là một thư viện nhỏ gọn và tiện lợi cho việc chuyển đổi giữa chuỗi và kích thước file trong Go. Với cú pháp đơn giản và hiệu suất cao, size là lựa chọn tuyệt vời cho việc hiển thị và xử lý kích thước file trong ứng dụng.
