3 ms·
For example, if you do a runtime type assertion to see if a variable satisfies an interface: v, ok := x.(T) http://golang.org/ref/spec#Type_assertions htt
by Jabbles 14y ago
For example, if you do a runtime type assertion to see if a variable satisfies an interface:
v, ok := x.(T)
http://golang.org/ref/spec#Type_assertions http://golang.org/ref/spec#Type_assertions
If you "monkey-patch" x to satisfy T in another package, the value of ok may change.
- GhotiFish 14y agoHmm I can kind of see what you mean, but I don't see it as a big of a problem. If you make package A depend on package B, package B monkey-patches x with method Foo so now x is a Fooer x now satisfies the Fooer interface in package A, well that seems ok. You imported B after all. In things that don't import B, x doesn't satisfy Fooer. Is this unexpected behavior? If B depends on C, C's x won't satisfy Fooer right?