1. 无参函数funcfunction1(){fmt.Println("无参函数 直接调用")}// 调用 function1()funcfunction2()int{return666// 返回一个指定类型参数}// res := function3()// fmt.Println(res)// or // fmt.Println(function3())2. 有参函数funcfunction3(a, b int, c string){fmt.Println("有参函数 指定类型依次传入")}// function2(1, 2, "真6")funcfunction4(a, b int)(int,int){return a + b, b * a // 返回两个参数}// fmt.Println(function4(22, 33))3. 递归调用funcfunction5(){fmt.Println("6666")function5()// 递归调用 函数调用自己本身}// function5()4. 定义函数属性类型type Books struct{title string// 定义函数属性类型author string}// var onebook Books// onebook.title = "Go 好扯淡" // 函数 .操作属性// onebook.author = "Mr.Mei"// fmt.Println(onebook.title, onebook.author)// fmt.Println(len(onebook.author))5. 占位符funcGetData()(int,string){return10,"hello"}// a, _ := GetData() // _, b := GetData()// fmt.Println(a, b)
4.列表操作及for循环
list :=[]int{123,456,789,111}// 定义列表list =append([]int{555}, list...)// 头部追加 ... == copylist =append(list,222)// 列表尾部追加 appendfmt.Println(list)for i, v :=range list {// for循环 i所引 v valuefmt.Println(i, v)}
5.原子性操作
package mainimport("fmt""sync/atomic""time")funcmain(){var cnt uint32=0// 运行10次for i :=0; i <10; i++{// 执行匿名函数gofunc(){// 从10循环到199 每次sleep一毫秒时间 去原子操作 cntfor i :=10; i <200; i++{time.Sleep(time.Millisecond)atomic.AddUint32(&cnt,1)}}()}time.Sleep(time.Second)// 原子读取 赋值cntFinal := atomic.LoadUint32(&cnt)fmt.Println("cnt:", cntFinal)}