golang
崔西儿
这个作者很懒,什么都没留下…
展开
-
Golang sync.Mutex 和 WaitGroup 的使用案例
sync.Mutex为互斥锁(也叫全局锁),Lock()加锁,Unlock()解锁。sync.WaitGroup,创建一个任务,sw.Add(1),加一;任务完成的时候使用sw.Done()来将任务减一;使用sw.Wait()来阻塞等待所有任务完成。package mainimport ( "fmt" "sync")var ( s = 0 syn = sync.Mutex{} sw = sync.WaitGroup{})func main(){ fo...原创 2020-06-28 13:06:41 · 691 阅读 · 0 评论 -
Golang JSON-反序列化map,切片(slice),结构体(struct)
package mainimport ( "encoding/json" "fmt")/*{"addr":"beijing","age":123,"name":"typ"}{"name":"qqqq","age":12,"hobbit":"ttttt"}[{"addr":"beijing111","age":1231,"name":"typ111"},{"addr":"beijing222","age":1222,"name":"typ222"}]*/type student str.原创 2020-06-21 17:43:36 · 3970 阅读 · 0 评论 -
Golang JSON-序列化map,切片(slice),结构体(struct)
package mainimport ( "encoding/json" "fmt")func mapJson() { testMap := make(map[string]interface{}) testMap["name"] = "typ" testMap["age"] = 123 testMap["addr"] = "beijing" json01, err := json.Marshal(testMap) if err != nil { fmt.Println("j.原创 2020-06-21 17:29:05 · 1195 阅读 · 0 评论 -
Golang map切片和map的排序
package mainimport ( "fmt" "sort")func main() { mapSlice := make([]map[string]string,2) mapSlice[0] = make(map[string]string) mapSlice[0]["name"] = "tom" mapSlice[0]["age"] = "20" mapSlice[1] = make(map[string]string) mapSlice[1]["name"] = .原创 2020-06-19 19:00:07 · 755 阅读 · 0 评论 -
Golang map进行操作,遍历
package mainimport "fmt"func main() { //map 操作 city := make(map[string]string) //赋值 --增加-更新 city["beijing"] = "北京" city["shanghai"] = "上海" city["shenzhen"] = "深圳" fmt.Println(city) //map[beijing:北京 shanghai:上海 shenzhen:深圳] //更新 city["beijin.原创 2020-06-19 18:33:30 · 1490 阅读 · 0 评论 -
Golang 切片使用
package mainimport ( "fmt")func main() { //切片的创建方式一: var arr [6]int = [6]int{1,2,3,4,5,6} var sli1 = arr[0:4] fmt.Println("arr: ",arr) fmt.Println("sli1: ",sli1) fmt.Println("sli1: ",len(sli1)) fmt.Println("sli1: ",cap(sli1)) //方式二: ints.原创 2020-06-19 17:59:16 · 173 阅读 · 0 评论 -
Golang time 时间常量
var a = 1 for { a++ fmt.Println(a) time.Sleep(time.Millisecond * 100) if a > 50 { break } } fmt.Println(now.Unix()) fmt.Println(now.UnixNano())原创 2020-06-18 19:47:21 · 819 阅读 · 0 评论 -
Golang 获取时间格式化
package mainimport ( "fmt" "time")func main(){ now := time.Now() fmt.Printf("%T %v",now,now) fmt.Println() fmt.Printf("年:%v 、",now.Year()) fmt.Printf("月:%v 、",int(now.Month())) fmt.Printf("月:%v 、",now.Month()) fmt.Printf("日:%v 、",now.Day()).原创 2020-06-18 19:31:59 · 1412 阅读 · 0 评论 -
Golang strconv和strings 常用方法
package mainimport ( "fmt" "strings" "strconv")func main() { //1).长度 var str01 string = "hello" fmt.Println("str01长度: ",len(str01)) //5 fmt.Println("str01长度: ",len("world 哈哈")) //12 汉字3个字节 //2).字符串遍历 var str02 = "hello 中国" //有乱码--》h e .原创 2020-06-18 18:55:16 · 349 阅读 · 0 评论 -
Golang defer使用
defer会把值拷贝,下面值的变化不会影响defer中的值package mainimport ( "fmt")func testK(n1 int, n2 int) int{ //defer 在testK完成之后执行 defer fmt.Println("n1: ",n1) defer fmt.Println("n2: ",n2) n1 += 2 n2 += 3 fmt.Println("n1 + n2",n1+n2) return n1 + n2}func .原创 2020-06-18 16:59:10 · 181 阅读 · 0 评论 -
Golang 闭包实现
package mainimport ( "fmt" "strings")func AddIt() func (int) int { var a = 10 return func(x int) int { a = a + x return a }}//strings.HasSuffix(name,suff)//判断name是否是suff的后缀//如果是,返回name---否则返回name + 后缀func makeSu(suff string) func (stri.原创 2020-06-18 16:36:42 · 214 阅读 · 0 评论 -
Golang 匿名函数使用方式--三种
package mainimport ( "fmt")//全局匿名函数var ( Func1 = func(a int, b int) int { return a * b })func main(){ //匿名函数方式一 res1 := func (a int, b int) int { return a + b }(3,4) fmt.Println("res1: ",res1) //匿名函数使用二 res2 := func (a int ,b int) .原创 2020-06-18 16:05:19 · 493 阅读 · 0 评论 -
Golang 函数、数据类型的别名
package mainimport ( "fmt")//复杂func tet(func1 func(int,int) int, num1 int, num2 int) int{ return func1(num1,num2)}//函数别名 funcTestTypetype funcTestType func(int,int) int//简单方法func tet2(func1 funcTestType, num1 int, num2 int) int{ return func.原创 2020-06-18 12:42:50 · 1551 阅读 · 0 评论 -
Golang 遍历 有中文
package mainimport ( "fmt")func main(){ var str string = "hello world!背景" str1 := []rune(str) for i:=0; i<len(str1); i++ { fmt.Printf("%c\n",str1[i]) }} for index, val := range str { fmt.Printf("%d, %c\n",index,val) // ..原创 2020-06-17 17:21:57 · 320 阅读 · 0 评论 -
golang 交换两个变量的值,不允许有中间变量
package mainimport ( "fmt" _"unsafe")func main(){ //交换两个变量的值,不允许有中间变量 var a int = 100 var b int = 200 a = a + b //替换 a 为 a + b // (b = a - b) ==>(b = a + b - b) ==> (b = a) b = a - b //替换 a = a + b 替换上面b 也就是 a // (a = a - b) ==&.原创 2020-06-17 10:40:20 · 351 阅读 · 0 评论