Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
golang
/
1.22.0
/
test
/
interface
/
Filename :
receiver1.go
back
Copy
// errorcheck // Copyright 2009 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. // Verify compiler complains about missing implicit methods. // Does not compile. package main type T int func (t T) V() func (t *T) P() type V interface { V() } type P interface { P() V() } type S struct { T } type SP struct { *T } func main() { var t T var v V var p P var s S var sp SP v = t p = t // ERROR "does not implement|requires a pointer|cannot use" _, _ = v, p v = &t p = &t _, _ = v, p v = s p = s // ERROR "does not implement|requires a pointer|cannot use" _, _ = v, p v = &s p = &s _, _ = v, p v = sp p = sp // no error! _, _ = v, p v = &sp p = &sp _, _ = v, p }