News for hackers. Stuff that matters.
Re:New in Go 1.20: wrapping multiple errors by cube2222 on Sunday December 11, 2022 @09:52AM (#33943667)
> That's a design problem, not an interface problem. Split you giant 30-methods interface into smaller ones if need be, that the whole point of interfaces: not be a 1-1 mapping to methods, but a semantic (sub)group of them.

It really isn't. This way it becomes a guessing game "Which methods will be used with which other ones?".

Even if I have a KVStore interface with 4 methods: Get, Set, List and Delete, it's a huge value to future code readers if my new structure only accepts an interface with List and Get, or List and Delete.

The other commenter already responded to your static typing assertion, so leaving that for there (it absolutely does check it).

Re:New in Go 1.20: wrapping multiple errors by za3faran on Sunday December 11, 2022 @03:06PM (#33946912)
> it's a huge value to future code readers if my new structure only accepts an interface with List and Get, or List and Delete.

But that's not specific to golang. You can use the same approach in Java, Kotlin, C#, etc

Re:New in Go 1.20: wrapping multiple errors by cube2222 on Sunday December 11, 2022 @03:59PM (#33947425)
Unless I'm missing something, you then have to write wrappers that translate between the big and the small interfaces, or explicitly mark all interfaces as implemented at the original type definition point.

The first one is a lot of boilerplate, the second one is not always possible.