/
/
opt
/
golang
/
1.19.4
/
test
/
typeparam
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.52
PHP 8.3.16
Dir:
/opt/golang/1.19.4/test/typeparam
Edit:
/opt/golang/1.19.4/test/typeparam/issue47713.go
// run // Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "encoding" "fmt" ) type Seralizable interface { encoding.BinaryMarshaler encoding.BinaryUnmarshaler } type SerDeString string func (s *SerDeString) UnmarshalBinary(in []byte) error { *s = SerDeString(in) return nil } func (s SerDeString) MarshalBinary() ([]byte, error) { return []byte(s), nil } type GenericSerializable[T Seralizable] struct { Key string Value T } func (g GenericSerializable[T]) Send() { out, err := g.Value.MarshalBinary() if err != nil { panic("bad") } var newval SerDeString newval.UnmarshalBinary(out) fmt.Printf("Sent %s\n", newval) } func main() { val := SerDeString("asdf") x := GenericSerializable[*SerDeString]{ Value: &val, } x.Send() }
Ukuran: 888 B