go robfunc 源码

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

golang robfunc 代码

文件路径:/test/ken/robfunc.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 functions of many signatures.

package main

func assertequal(is, shouldbe int, msg string) {
	if is != shouldbe {
		print("assertion fail" + msg + "\n")
		panic(1)
	}
}

func f1() {
}

func f2(a int) {
}

func f3(a, b int) int {
	return a + b
}

func f4(a, b int, c float64) int {
	return (a+b)/2 + int(c)
}

func f5(a int) int {
	return 5
}

func f6(a int) (r int) {
	return 6
}

func f7(a int) (x int, y float64) {
	return 7, 7.0
}


func f8(a int) (x int, y float64) {
	return 8, 8.0
}

type T struct {
	x, y int
}

func (t *T) m10(a int, b float64) int {
	return (t.x + a) * (t.y + int(b))
}


func f9(a int) (in int, fl float64) {
	i := 9
	f := float64(9)
	return i, f
}


func main() {
	f1()
	f2(1)
	r3 := f3(1, 2)
	assertequal(r3, 3, "3")
	r4 := f4(0, 2, 3.0)
	assertequal(r4, 4, "4")
	r5 := f5(1)
	assertequal(r5, 5, "5")
	r6 := f6(1)
	assertequal(r6, 6, "6")
	var r7 int
	var s7 float64
	r7, s7 = f7(1)
	assertequal(r7, 7, "r7")
	assertequal(int(s7), 7, "s7")
	var r8 int
	var s8 float64
	r8, s8 = f8(1)
	assertequal(r8, 8, "r8")
	assertequal(int(s8), 8, "s8")
	var r9 int
	var s9 float64
	r9, s9 = f9(1)
	assertequal(r9, 9, "r9")
	assertequal(int(s9), 9, "s9")
	var t *T = new(T)
	t.x = 1
	t.y = 2
	r10 := t.m10(1, 3.0)
	assertequal(r10, 10, "10")
}

相关信息

go 源码目录

相关文章

go array 源码

go chan 源码

go chan1 源码

go complit 源码

go convert 源码

go cplx0 源码

go cplx1 源码

go cplx2 源码

go cplx3 源码

go cplx4 源码

0  赞