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}