sách gpt4 ai đã đi

Cách triển khai phương thức giao diện với kiểu trả về là giao diện trong Golang

In lại Tác giả: IT Lao Gao Thời gian cập nhật: 2023-10-28 13:01:38 27 4
mua khóa gpt4 Nike

Đây là mã của tôi:

loại giao diện IA {
FB()IB
}

loại giao diện IB {
Chuỗi Bar()
}

kiểu A struct {
b *B
}

hàm (a *A) FB() *B {
trở về ab
}

kiểu B struct{}

func (b *B) Bar() chuỗi {
trả về "Bar!"
}

Tôi gặp lỗi:

không thể sử dụng a (kiểu *A) làm kiểu IA trong đối số hàm:
*A không triển khai IA (loại sai cho phương pháp FB)
có FB() *B
muốn FB() IB

Sau đây là mã đầy đủ:http://play.golang.org/p/udhsZgW3W2
Tôi nên chỉnh sửa Tôi là Giao diện hoặc sửa đổi của tôi MỘT kết cấu?
Nếu tôi định nghĩa IA, IB trong một gói khác (để tôi có thể chia sẻ các giao diện này), tôi phải nhập gói của mình và đặt IB làm kiểu trả về của A.FB(), đúng không?

1 Câu trả lời

Thay đổi nó

hàm (a *A) FB() *B {
trở về ab
}

Đi vào

hàm (a *A) FB() IB {
trở về ab
}

Bằng cử nhânTất nhiên nó có thể được định nghĩa trong một gói khác. Do đó, nếu cả hai giao diện đều nằm trong gói đồ ăn Được định nghĩa và triển khai trong gói thanh Sau đó, tuyên bố là

loại giao diện IA {
FB()IB
}

Mặc dù việc thực hiện là

hàm (a *A) FB() foo.IB {
trở về ab
}

Về giao diện - Cách triển khai phương thức giao diện với kiểu trả về là một giao diện trong Golang, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11921634/

27 4 0
CNTT Lao Gao
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com