// $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 (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; | |
} |