Golang: Type in interface
Type: đại diện cho kiểu giá trị mà chúng ta sử dụng.
Tác dụng:
- Nhờ có Type mà các compiler có thể xác định được một số lỗi trong quá trình compile.
Type assertion:
- assertion: sự xác nhận
- là một cách để thông báo cho compiler biết kiểu của đối tượng mà mình sử dụng.
- Nói ngắn gọn là ép kiểu cho đối tượng.
Type assertions
Type assertion cung cấp tính năng kiểm tra kiểu dữ liệu.
t := i.(T)
Giải thích syntax:
-
Kiểm tra
i
có thuộc kiểu dữ liệuT
hay không. Nếu đúng thì gánt = i
. Nếu không sẽ trigger một panic (lỗi). -
Để test giá trị nhưng không trigger panic, ta dùng syntax sau:
t, ok := i.(T)
Giải thích:
- Nếu
i
có thuộc kiểu dữ liệuT
thì gánt = i
,ok = true
. Nếu không,t
sẽ làzero
value,ok = false
Ref:
[1] https://techmaster.vn/posts/35059/series-golang-co-ban-phan-18-interfaces-i
[2] https://backend.vn/bai-viet/golang-interface-1541487108.html