Monday, 30 November 2015

[Golang] ba chấm

Trong Go có một ký hiệu khá đặc biêt: ba chấm (...)
Ba chấm, thêm vào mỗi cuối câu, để lại một sự miên man trong suy nghĩ.
Như "Anh ... em"...

Và có vẻ như bác Rob Pike cũng hiểu 3 chấm có ý này nọ kiểu vậy, nên lấy nó làm ký hiệu cho "wildcards".
Tức dấu ... sẽ "match" với tất cả mọi thứ (gần giống ký hiệu * trong shell).
Khi viết
"github.com/hvnsweeting/pika/..."
nó sẽ match với tất cả các sub package trong package "pika" cũng như chính package "pika".

Để làm gì? 
Một ứng dụng đơn giản là để test tất cả các package / subpackage trong 1 package,
Ví dụ: cần test toàn bộ package
github.com/labstack/echo
chỉ cần chạy
go test github.com/labstack/echo/...
Với ai dùng vendor trong Go1.5, để bỏ qua thư mục vendor khi sử dụng ..., có thể gõ:
go test $( go list github.com/labstack/echo/... | grep -v /vendor/ )

Ba chấm ... đôi khi, là tất cả.

Tham khảo:
https://github.com/golang/go/issues/11659#issuecomment-122139338
https://golang.org/cmd/go/#hdr-Description_of_package_lists

Hết.
HVN at familug.org