Tôi mới đến golang, do đó, nếu bạn đặt câu hỏi này là quá ngây thơ thì rất thích hợp. Nhìn xung quanh, nhưng không thể tìm thấy câu trả lời cho câu hỏi cơ bản của tôi.Gõ kiểu xác nhận kiểu vs so với cấu trúc bê tông?
Cho phép nói rằng tôi có cấu trúc và phương pháp cụ thể như được hiển thị bên dưới.
type MyData struct{
field1 string
field2 int
}
func(a MyData) OperatorOnString() string{
return a.field1.(string)
}
func(a MyData) OperatorOnInt() int{
return a.field2.(int)
}
Câu hỏi của tôi là, tôi có thể nhập và truyền lại thay vì thực hiện xác nhận không? Từ những gì tôi đã học được cho đến nay là, khẳng định được sử dụng trên dữ liệu của giao diện kiểu. Nhưng trong trường hợp này tôi có loại bê tông. Tôi vẫn nên sử dụng khẳng định hoặc tôi có thể làm một cái gì đó như return int(a.field2)
. Tôi biết ví dụ này là tầm thường, nhưng điểm mà tôi bối rối là khi nào sử dụng giữa hai loại chuyển đổi. Hay có một số thành ngữ golang có liên quan ở đây không?
Cảm ơn
Cảm ơn. Tuy nhiên trong kịch bản thực tế, các toán tử của tôi sẽ có một số đối số sẽ được sử dụng để hoạt động trên các trường MyData. Do đó trước khi trở về lĩnh vực đó, tôi có cần phải kiểm tra loại? – Minty
@Minty: Hiển thị mã thực. Có lẽ bạn đang trộn nhiều khái niệm và nó sẽ không tốt hơn nếu không có mã thực. – Volker
@Minty: Nếu kiểu trả về fn 'T' thì chỉ các biểu thức kiểu' T' mới xuất hiện trong 'return expr'. Nó không phải về các lĩnh vực, đó là về loại biểu thức. Ví dụ. nếu nói rằng chúng ta có 'var i int' trong một fn trả về' int64' thì chúng ta có thể và phải viết 'return int64 (i)'. Quảng cáo "để kiểm tra loại": Loại kiểm tra được thực hiện bởi trình biên dịch cho bạn tự động. – zzzz