go interfun 源码

  • 2022-07-15
  • 浏览 (831)

golang interfun 代码

文件路径:/test/ken/interfun.go

// 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 interfaces and methods.

package main

type S struct {
	a,b	int;
}

type I1 interface {
	f	()int;
}

type I2 interface {
	g() int;
	f() int;
}

func (this *S) f()int {
	return this.a;
}

func (this *S) g()int {
	return this.b;
}

func
main() {
	var i1 I1;
	var i2 I2;
	var g *S;

	s := new(S);
	s.a = 5;
	s.b = 6;

	// call structure
	if s.f() != 5 { panic(11); }
	if s.g() != 6 { panic(12); }

	i1 = s;		// convert S to I1
	i2 = i1.(I2);	// convert I1 to I2

	// call interface
	if i1.f() != 5 { panic(21); }
	if i2.f() != 5 { panic(22); }
	if i2.g() != 6 { panic(23); }

	g = i1.(*S);		// convert I1 to S
	if g != s { panic(31); }

	g = i2.(*S);		// convert I2 to S
	if g != s { panic(32); }
}

相关信息

go 源码目录

相关文章

go array 源码

go chan 源码

go chan1 源码

go complit 源码

go convert 源码

go cplx0 源码

go cplx1 源码

go cplx2 源码

go cplx3 源码

go cplx4 源码

0  赞