Still a mistake there. All "MyReader" uses should be "*MyReader".

On Friday, September 11, 2020 at 11:02:49 PM UTC-4 Di gg wrote:

> Sorry, the last 4 lines should be:
>
> rs = (MyReader string)(rb)
> _, _ = rs.Read(s)
> rb = (MyReader []byte)(rs)
> _, _ = rb.Read(bs)
>
> On Friday, September 11, 2020 at 11:00:12 PM UTC-4 Di gg wrote:
>
>> An example demostrating how to let Reader.Read support both string and 
>> []byte parameters.
>>
>> package readonlybytes[T] (
>>     assert T.kind & (String | Slice)
>> )
>>
>> package Reader[T] (
>>     assert readonlybytes[T]
>> ){
>>     type Reader interface {
>>         Read(bytes T)(n int, err error)
>>     }
>> }
>>
>> package MyReader[T](
>>     assert T.kind & (String | Slice)
>> ){
>>     type MyReader struct{}
>>
>>     type (r *MyReader) Read(s T)(int, error) {
>>         return len(s), nil
>>     }
>> }
>>
>> // use it:
>>
>> var mrs MyReader string
>> var mrb MyReader []byte
>>
>> s := "Golang"
>> bs := make([]byte, 100)
>>
>> var rs Reader string = mrs
>> _, _ = rs.Read(s)
>> var rb Reader []byte = mrb
>> _, _ = rb.Read(bs)
>>
>> rb = (MyReader string)(rs)
>> _, _ = rb.Read(bs)
>> rs = (MyReader []byte)(rb)
>> _, _ = rs.Read(s)
>>
>>
>>
>> On Wednesday, August 26, 2020 at 1:16:49 PM UTC-4 Di gg wrote:
>>
>>>
>>>
>>> https://github.com/dotaheor/unify-Go-builtin-and-custom-generics/blob/master/use-package-as-gen.md
>>>
>>> This is an alternative generic idea set, which should be Go 1 compatible.
>>> It tries to use the same syntax forms as builtin generics.
>>>
>>> Different from the official draft, it adopts a from-top-to-bottom 
>>> pattern,
>>> instead of the from-bottom-to-top pattern, to describe type parameters.
>>> For example, given a map type parameter M, its key and element types 
>>> could
>>> be denoted as M.key and M.element, whereas to use a map type parameter,
>>> its key and elements must also present in the declaration signarure or 
>>> constraint definitions.
>>>
>>>

-- 
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/d465715d-c381-486e-8a1f-617a68f82b59n%40googlegroups.com.

Reply via email to