create Golang project with function

1, create new project “test7_function”

$ cd ~/project
$ mkdir test7_function
$ cd test7_function
$ touch function.go

2,add following lines in “function.go”

package main
 
import (
	"fmt"
)
 
type Dog struct {
	name string
	weight float32
	sex string
}
 
func describe(f func(string) int, n string) {
	fmt.Println(f(n))
}
 
func main() {
	// TEST 1, define pointer
	var p *int
	var n int
	n = 21
	p = &n
	fmt.Println(n, p, *p)
	// TEST 2, define struct
	var pp = Dog{"pang pang", 17.5, "female"}
	pp.weight = 15.6
	fmt.Println(pp)
	// TEST 3, define struct pointer
	var nn *Dog = &pp
	nn.name = "nao nao"
	(*nn).weight = 7.5
	(*nn).sex = "male"
	fmt.Println(nn, *nn)
	// TEST 4, array and slice
	var nums = [9]int{12, 23, 34, 45, 56, 67, 78, 89, 90}
	var slice []int = nums[3:7]
	nums[5] = 111
	fmt.Println(slice)
	// TEST 5, define struct slice
	var dogs = []Dog{
		Dog{"pang pang", 30.5, "female"},
		Dog{"nao nao", 7.5, "male"},
		Dog{"biu biu", 15.0, "male"},
		Dog{"zai zai", 17.0, "male"}}
	fmt.Println(dogs[0:2])
	// TEST 6, define a slice
	var names = make([]string, 0)
	names = append(names, "11", "22", "33", "44", "55")
	fmt.Println(names)
	// TEST 7, range
	for idx, content := range names {
		content = "333"
		fmt.Println(names[idx], "VS", content)
	}
	// TEST 8, define map
	var age = make(map[string]int)
	age["pang pang"] = 4
	age["nao nao"] = 3
	age["biu biu"] = 2
	age["zai zai"] = 23
	delete(age, "biu biu")
	if k, ok := age["nao nao"]; ok {
		fmt.Println("! nao nao !", k)
	} else {
		fmt.Println("! ! nao nao", k)
	}
	// TEST 9, function
	var function = func(name string) int {
		return age[name]
	}
	describe(function, "zai zai")
}

3, run “function.go”

$ go run function.go

you should get result like this:

21 0xc0000b8010 21
{pang pang 15.6 female}
&{nao nao 7.5 male} {nao nao 7.5 male}
[45 56 111 78]
[{pang pang 30.5 female} {nao nao 7.5 male}]
[11 22 33 44 55]
11 VS 333
22 VS 333
33 VS 333
44 VS 333
55 VS 333
! nao nao ! 3
23

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值