golang的缓冲channel和无缓冲channel的区别

有缓冲的1 package main 2 3 import "fmt" 4 5 var c = make(chan int, 1) 6 7 func f() { 8 9 c <- 'c'10 11 fmt.Println("在goroutine内")12 }13 14 func main() {15 go f()16 17 c <- 'c'18 <-c19 <-c20 21 fmt.Println("外部调用")22 }无缓冲的// pppackage mainimport ( "fmt")func writeRoutine(test_chan chan int, value int) { test_chan <- value}func readRoutine(test_chan chan int) { <-test_chan

golang map 长度可变吗

自然是可以的,当然map不能作为另一个map的key,只能做value。请参考以下例子:package mainimport "fmt"type t_classmates map[string]intfunc main() {  domitory := make(map[string]t_classmates)  class1 := make(t_classmates)  class1["zhangsan"] = 23  class1["lisi"] = 24  domitory["308"] = class1  domitory["309"] = t_classmates{"wangwu": 25, "zhaoliu": 26,}  fmt.println(domitory)}

golang中获取字符串长度的几种方法

1.func Contains(s, substr string) bool这个函数是查找某个字符是否在这个字符串中存在,存在返回true代码如下:import ("fmt""strings")func main() {fmt.Println(strings.Contains("widuu", "wi")) //truefmt.Println(strings.Contains("wi", "widuu")) //false}2.func ContainsAny(s, chars string) bool这个是查询字符串中是否包含多个字符代码如下:import ("fmt""strings")func main() {fmt.Println(strings.ContainsAny("widuu", "w&d")) //true}