đang A:tại sao in lát bằng fmt.Println (slice) là khác nhau trong Golang
package main
import "fmt"
func main() {
slice := IntSlice{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(slice)
}
type IntSlice []int
đầu ra A:
[0 1 2 3 4 5 6 7 8 9]
đang B:
package main
import "fmt"
func main() {
slice := IntSlice{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
fmt.Println(slice)
}
type IntSlice []int
func (slice IntSlice) Error() string { return "this is called." }
đầu ra B:
this is called.
lý do hành vi của fmt.Println(slice)
khác với hai mã này (A và B)?
hoặc lý do tự động fmt.Println(slice)
gọi slice.Error()
?
Từ tài liệu Go: "4. Nếu toán hạng thực hiện giao diện lỗi, phương thức Lỗi sẽ được gọi để chuyển đối tượng thành chuỗi, sau đó sẽ được định dạng theo yêu cầu của động từ (nếu có)." – squiguy