- Phát triển data.frame theo cách hiệu quả về bộ nhớ
- phát hiện rò rỉ bộ nhớ ruby/ruby on rails
- Không thể giải quyết việc nhập android.support.v7.app
- Ổ cắm miền UNIX và bộ nhớ chia sẻ (tệp được ánh xạ)
Có cách nào để xác định loại cụ thể từ danh sách các giao diện tùy ý không? Tôi biết về chuyển đổi kiểu nhưng tôi muốn biết tất cả các giao diện được đáp ứng.
Ví dụ, cho:
loại Giao diện Mover { Move() }
loại giao diện Talker { Talk() }
loại giao diện Flyer { Fly() }
kiểu Person struct{}
func (a *Person) Move() { fmt.Println("Di chuyển...") }
func (a *Person) Talk() { fmt.Println("Đang nói...") }
Tôi có thể kiểm tra thủ công từng giao diện như sau:
func testInterfaces(giao diện thực thể{}) {
_, ok := thực thể.(Người di chuyển)
nếu được {
fmt.Println("người di chuyển")
}
_, ok := thực thể.(Người nói)
nếu được {
fmt.Println("người nói")
}
_, ok := thực thể.(Tờ rơi)
nếu được {
fmt.Println("tờ rơi")
}
}
Đối với giá trị Person, "người di chuyển" và "người nói" sẽ được in ra. Tuy nhiên, tôi muốn có chức năng như thế này (không hoạt động):
func testInterfaces2(giao diện thực thể{}, loại interfaceList??) {
đối với _, inter := phạm vi interfaceList {
val, ok := thực thể.(inter)
nếu được {
// làm gì đó với val
}
}
}
Có cách nào để tôi có thể triển khai một hàm giả như thế này không, có thể thông qua gói reflect hoặc thứ gì đó tương tự?
1 Câu trả lời
Bạn có thể sử dụng cái nàyNhận một phần của loại giao diện.
Sau đó bạn có thể kiểm tra giá trị của mìnhKiểu
Có thực hiện được không?đây Giao diện trong . :
giao diện := []reflect.Type{reflect.TypeOf((*Mover)(nil)).Elem(),
phản ánh.TypeOf((*Talker)(nil)).Elem(),
phản ánh.TypeOf((*Flyer)(nil)).Elem()}
p := &Người{}
t := phản ánh.TypeOf(p)
tên := t.Elem().Name()
đối với _, interf := phạm vi giao diện {
nếu t.Implements(interf) {
fmt.Printf("%s là %s\n", tên, interf.Name())
} khác {
fmt.Printf("%s KHÔNG phải là %s\n", name, interf.Name())
}
}
Nhưng tôi nghĩ tốt hơn là sử dụng công tắc loại nếu có thể
Về giao diện - Giao diện nào được thỏa mãn từ danh sách giao diện tùy ý? , 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/20570193/
Tôi đang cố gắng tận dụng nhiều hơn các giao diện trong cơ sở mã của mình cho máy chủ trò chơi mà tôi đang viết và hiểu các khái niệm cấp cao cũng như thời điểm nên sử dụng giao diện (tôi nghĩ vậy). Trong trường hợp của tôi, tôi sử dụng chúng để tách các gói hàng của tôi ra khỏi nhau và tạo ra
Tôi có một giao diện gọi là Widget được sử dụng trong suốt dự án của tôi. Tuy nhiên, nó cũng được sử dụng như một Prop cho một thành phần gọi là Widget. Cách tốt nhất để xử lý vấn đề này là gì? Tôi có nên thay đổi tiện ích của mình không?
Có một giao diện có thể là một trong nhiều giao diện giao diện a {x:string} giao diện b {y:string} giao diện c {z:string}
Tôi đã gặp phải tình huống cần phải gọi đến dịch vụ của bên thứ ba để lấy thông tin. Những dịch vụ này có thể khác nhau đối với những khách hàng khác nhau. Tôi có chức năng xác thực trong giao diện của mình như hiển thị bên dưới. giao diện IServiceProvider { bool
Trong trường hợp của tôi, "RequestHandlerProxy" là một struct có các trường là giao diện "IAdapter" có các phương thức có thể được gọi và có đầu vào là một struct "RequestHandlerProxy".
Tôi có một giao diện Interface1 đã được lớp A triển khai và một số giá trị biến riêng tư được thiết lập và tôi đang gửi đối tượng của lớp A đến lớp tiếp theo chấp nhận đầu vào là Interface2. Vậy làm sao tôi có thể
Giả sử tôi có một lớp và cấu trúc giao diện như thế này: interface IService {} interface IEmailService : IService { Task SendAs
Có ai biết tôi có thể tìm thấy định nghĩa về giao diện XML-RPC (trong OpenERP 7) ở đâu không? Tôi muốn biết những tham số và thuộc tính đối tượng nào là cần thiết để tạo hoặc lấy một đối tượng. Các ví dụ XML cho từng phần tử cũng sẽ rất hữu ích. Câu trả lời hay nhất
Gần đây tôi đọc được về quan niệm sai lầm rằng giao diện là trừu tượng. Một bài đăng như vậy là http://blog.ploeh.dk/2010/12/02/InterfacesAreNotAbstract
Nếu tôi có một IInterface con hiện có được triển khai bởi bên thứ ba và tôi muốn thêm các chương trình trợ giúp, liệu Delphi có cung cấp cách dễ dàng nào để thực hiện việc này mà không cần phải chuyển hướng thủ công từng phương thức giao diện không? Nghĩa là, cho
Tôi đang cố gắng gán một mảng Bài viết vào tài liệu Mongoose của mình nhưng Typescript có vẻ không thích điều này và tôi không biết tại sao nó lại hiển thị cảnh báo/lỗi này cho biết không thể gán được. Sơ đồ và giao diện Mongoose của tôi (
Tôi có hai giao diện: public interface IController { void doSomething(IEntity thing); } public inte
Có thể tạo giao diện mở rộng giao diện Serializable không? Nếu có, giao diện mở rộng có hoạt động giống như giao diện Serilizable không?
Tôi đang cố gắng tạo một lớp trung gian giữa hai kho lưu trữ, lớp này lấy dữ liệu từ kho lưu trữ A, chuyển đổi sang kiểu tương ứng trong kho lưu trữ B, sau đó lưu trữ dữ liệu đó. Vì tôi cần chuyển đổi khoảng 50-100 kiểu, tôi hy vọng sẽ sử dụng map[string]func và dựa mã của tôi vào s
Tôi đang thực hiện một yêu cầu trong đó tôi nhận được một đối tượng JSON chứa giá trị ngày dưới dạng chuỗi. Nhiệm vụ của tôi là lưu trữ các đối tượng Ngày trong cơ sở dữ liệu. Loại thứ này: {"start_date": "2019-05-29", "
Mục tiêu của phương pháp tiếp cận của chúng tôi là giới thiệu giao diện cho các lớp mô hình và DAO hiện có của chúng tôi. Các lớp mô hình được xác định bằng nhiều loại ID tài nguyên khác nhau, không chỉ là các số ngẫu nhiên mà còn mang ý nghĩa và hành vi. Vì vậy, chúng ta phải sử dụng các đối tượng thay vì các kiểu nguyên thủy để biểu diễn
Giao diện Collection có nhiều phương thức. Giao diện Danh sách mở rộng giao diện Bộ sưu tập. Nó khai báo cùng một giao diện như Collection (int
Tôi có một ứng dụng máy chủ Java sử dụng Jackson để thực hiện tuần tự hóa chung các DTO bằng API phản chiếu. Ví dụ, đối với giao diện DTO này: gói com.acme.libr
Nếu tôi có một giao diện trong Kotlin: interface KotlinInterface { val id: String } Tôi có thể triển khai nó như thế này: class MyClass
Tôi biết sự khác biệt giữa tất cả các trình sửa đổi truy cập trong Java. Tuy nhiên, tôi đã được hỏi một câu hỏi rất thú vị mà tôi đã rất khó khăn để tìm ra câu trả lời: Sự khác biệt giữa giao diện riêng tư và công khai trong Java là gì?
Tôi là một lập trình viên xuất sắc, rất giỏi!