> if you find it more readable

not only readable. I still can't get why they banned constraints on structs
having some fields of certain type. With contracts they are easy to allow:

contract NameField(T) {
    T Name string
}

and there's no hope with interfaces

ср, 17 июн. 2020 г. в 21:37, Axel Wagner <axel.wagner...@googlemail.com>:

> Ah sorry, I misunderstood. Please disregard :)
>
> On Wed, Jun 17, 2020, 20:36 Axel Wagner <axel.wagner...@googlemail.com>
> wrote:
>
>> You can always combine multiple interface constraints:
>>
>> type ConstraintA(type A) interface {
>>     Foo() A
>> }
>>
>> type ConstraintB(type B) interface {
>>     Bar() B
>> }
>>
>> type CombinedConstraint(type A, B) interface {
>>     (ConstraintA(A))
>>     (ConstraintB(B))
>> }
>>
>> func F(type A, B CombinedConstraint(A, B)) (...) { ... }
>>
>> So I don't think removing contracts prevents you from getting the same if
>> you find it more readable.
>>
>> On Wed, Jun 17, 2020, 18:58 Denis Cheremisov <denis.cheremi...@gmail.com>
>> wrote:
>>
>>> IMO a groups of constraints are horrible with interfaces
>>>
>>> type CommonResponse(type E) interface {
>>>     GetError() E
>>> }
>>>
>>> type CommonError interface {
>>>     GetCode() int32
>>> }
>>>
>>> func IsOK(type R CommonResponse(E), E CommonError)(r R) bool {
>>>     switch r.GetError().GetCode() {
>>>     case 0, 200, 201:
>>>         return true
>>>     default:
>>>     return false
>>>     }
>>> }
>>>
>>> vs
>>>
>>> constract CommmonResponse(R, E) {
>>>     R GetError() E
>>>     E GetCode() int32
>>> }
>>>
>>> func IsOK(type R, E CommonResponse)(r R) bool {
>>>     switch r.GetError().GetCode() {
>>>     case 0, 200, 201:
>>>         return true
>>>     default:
>>>     return false
>>>     }
>>> }
>>>
>>> That trickery with commas to express dependcy of types is hard
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to golang-nuts+unsubscr...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/golang-nuts/4e25a228-4c96-44ba-b33a-bbde3460ea2ao%40googlegroups.com
>>> <https://groups.google.com/d/msgid/golang-nuts/4e25a228-4c96-44ba-b33a-bbde3460ea2ao%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CA%2BysyktuXK3mF-z0aKZ7H%3DDkKBZSiimECuQpBGhjHGz7wwLjgg%40mail.gmail.com.

Reply via email to