| // $G $D/$F.go && $L $F.$A && ./$A.out |
| |
| // 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. |
| |
| |
| package main |
| |
| type C struct |
| { |
| a int; |
| x func(p *C)int; |
| } |
| |
| func g(p *C)int; |
| |
| func |
| (this *C) f()int |
| { |
| return this.a; |
| } |
| |
| func |
| main() |
| { |
| var v int; |
| var c *C; |
| |
| c = new(C); |
| c.a = 6; |
| c.x = g; |
| |
| v = g(c); |
| if v != 6 { panic(v); } |
| |
| v = c.x(c); |
| if v != 6 { panic(v); } |
| |
| v = c.f(); |
| if v != 6 { panic(v); } |
| } |
| |
| func |
| g(p *C)int |
| { |
| var v int; |
| |
| v = p.a; |
| if v != 6 { panic(v); } |
| return p.a; |
| } |