Initial commit: Go 1.23 release state
This commit is contained in:
69
test/ken/intervar.go
Normal file
69
test/ken/intervar.go
Normal file
@@ -0,0 +1,69 @@
|
||||
// run
|
||||
|
||||
// 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.
|
||||
|
||||
// Test interface assignment.
|
||||
|
||||
package main
|
||||
|
||||
type Iputs interface {
|
||||
puts (s string) string;
|
||||
}
|
||||
|
||||
// ---------
|
||||
|
||||
type Print struct {
|
||||
whoami int;
|
||||
put Iputs;
|
||||
}
|
||||
|
||||
func (p *Print) dop() string {
|
||||
r := " print " + string(p.whoami + '0')
|
||||
return r + p.put.puts("abc");
|
||||
}
|
||||
|
||||
// ---------
|
||||
|
||||
type Bio struct {
|
||||
whoami int;
|
||||
put Iputs;
|
||||
}
|
||||
|
||||
func (b *Bio) puts(s string) string {
|
||||
r := " bio " + string(b.whoami + '0')
|
||||
return r + b.put.puts(s);
|
||||
}
|
||||
|
||||
// ---------
|
||||
|
||||
type File struct {
|
||||
whoami int;
|
||||
put Iputs;
|
||||
}
|
||||
|
||||
func (f *File) puts(s string) string {
|
||||
return " file " + string(f.whoami + '0') + " -- " + s
|
||||
}
|
||||
|
||||
func
|
||||
main() {
|
||||
p := new(Print);
|
||||
b := new(Bio);
|
||||
f := new(File);
|
||||
|
||||
p.whoami = 1;
|
||||
p.put = b;
|
||||
|
||||
b.whoami = 2;
|
||||
b.put = f;
|
||||
|
||||
f.whoami = 3;
|
||||
|
||||
r := p.dop();
|
||||
expected := " print 1 bio 2 file 3 -- abc"
|
||||
if r != expected {
|
||||
panic(r + " != " + expected)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user