
Golang基础
95年的巨蟹
机械boy
展开
-
Golang package
package calcimport "fmt"var TT = 99//包中的 变量名、函数名、接口、结构体 首字母小写,表示私有,仅能在本包内访问;func Add(x, y int) int { return x + y}func init() { fmt.Println("import 这个包时,自动执行") fmt.Println(TT)//99 全局变量先声明,在执行 init函数}package importdemo2import ( "fmt" bie原创 2021-11-11 15:01:06 · 183 阅读 · 0 评论 -
Golang 类型断言
package mainimport ( "fmt")//类型断言1//str,ok := a.(string)//类型断言 返回值及是否成功func assign(a interface{}) { fmt.Printf("%T \n", a) str, ok := a.(string) if !ok { fmt.Println("猜错了") } else { fmt.Println("传进来的是个字符串:", str) }}//类型断言2// a.(type)原创 2021-11-11 14:35:00 · 104 阅读 · 0 评论 -
Golang 接口 interface、空接口 interace{}
package mainimport "fmt"//一、接口//接口可以嵌套type animal interface { mover //嵌套mover接口 eater //嵌套eater接}type mover interface { move()}type eater interface { eat(string)}//同一个结构体可以实现多个接口type cat struct { name string feet int8}func (c *cat)原创 2021-11-08 11:00:51 · 184 阅读 · 0 评论 -
Golang json
package mainimport ( "encoding/json" "fmt")//结构体与json//结构体转json、json转结构体type person struct{ Name string //属性首字母大写;json才能转换 Age int `json:"age"`//使用标签决定json字段名}func main() { p1 := person{ Name: "zhou", Age: 19, } //序列化 p,err := json.M原创 2021-11-02 15:17:32 · 84 阅读 · 0 评论 -
Golang 结构体struct
package mainimport "fmt"//结构体type person struct { name string age int hobby []string}func main() { //声明person 类型的变量 var lixiang person //1.使用值列表的形式初始化,顺序与定义顺序一致 lixiang = person{ "lixiang", 10, []string{"足球", "双色球"}, } fmt.Println原创 2021-11-02 13:48:32 · 261 阅读 · 0 评论 -
Golang panic&recover
package mainimport "fmt"func funcA() { fmt.Println("a")}//recover 需要和defer 搭配使用//defer 需要在可能出现panic的 语句前使用;func funcB() { //如果刚刚打开了数据库连接 defer func() { err := recover() fmt.Println(err) fmt.Println("释放数据库连接") }() panic("出现了严重的错误!!!") /原创 2021-11-02 10:16:21 · 77 阅读 · 0 评论 -
Golang defer 关键字
package mainimport "fmt"/* Go语言中的return不是原子的,在底层分为两步执行: 第一步返回值赋值; defer; 第二步真正返回 return. a. defer在第一步第二步之间; b. 多个defer进行压栈操作,先进后出;*/func f1() int { x := 5 defer func() { x++ }() return x // 返回值赋值为5(返回值变量不是x) ; defer后 x=6 ; 返回值返回5}func原创 2021-11-01 16:01:25 · 160 阅读 · 0 评论 -
Golang 判断是否是回文字符串
package mainimport "fmt"//回文判断//上海黄翔拉翔黄海上//水冷江寒func main() { s0 := "上海黄翔拉翔黄海上" s1 := "水冷江寒" var isH bool isH = IsHuiWen(s0) fmt.Printf("%s 是否是回文:%v \n",s0,isH)//true isH = IsHuiWen(s1) fmt.Printf("%s 是否是回文:%v \n",s1,isH)//false}func IsHu原创 2021-10-29 17:30:39 · 636 阅读 · 0 评论 -
Golang 判断字符串中 汉字个数
package mainimport ( "fmt" "unicode")//1.判断字符串中汉字数量func main() { str := "haha哈哈哈caicai有几个汉字" //如何判断 一个字符时汉字 //1.拿到字符串中的字符 var count int //定义一个变量记录个数 for _,c := range str { //2.判断这个字符是不是汉字 if unicode.Is(unicode.Han,c) { //3.把汉字个数累加 cou原创 2021-10-29 17:03:40 · 898 阅读 · 0 评论 -
Golang map
package mainimport ( "fmt" "sort")func main() { //map var m1 map[string]int fmt.Println(m1 == nil) //true 没初始化,为空 //map 会自动扩容 m1 = make(map[string]int, 5) m1["liming"] = 20 fmt.Println(m1) // map[liming:20] //获取值时,key不存在时; fmt.Println(m1["原创 2021-10-29 16:36:02 · 89 阅读 · 0 评论 -
Golang 指针(unsafe.Pointer、uintptr)
package mainimport "fmt"func main() { //指针 //符号: 取址& 取值* //go指针只能读,不能修改指针的值 addr := "沙河" addrP := &addr fmt.Printf("类型:%T,变量值:%v,指向的值:%v \n",addrP,addrP,*addrP) //类型:*string,变量值:0xc00004e230,指向的值:沙河}...原创 2021-10-29 15:50:15 · 622 阅读 · 0 评论 -
Golang 切片
Golang 切片package mainimport "fmt"func main() { //一、切片定义 var a0 []int fmt.Println(a0) // 未分配内存 为空 == nil //1.直接赋值初始化 a0 = []int{1, 2, 3} fmt.Println(a0) //[1,2,3] //2.make初始化,分配内存 a1 := make([]bool, 2, 4) fmt.Println(a1) //分配内存 [false false]原创 2021-10-29 15:42:51 · 158 阅读 · 0 评论 -
Golang 数组
Golang 数组:package mainimport "fmt"func main() { //一、数组的初始化 //1.先定义,不放呢赋值,为赋值,则为默认值 var a0 [10]int a0 = [10]int{1, 2} fmt.Println(a0)//[1 2 0 0 0 0 0 0 0 0] //2.直接定义时赋值,不写大小 var a1 = [...]int{1, 2, 3} fmt.Println(a1)//[1 2 3] //3.在定义时直接使用下标赋原创 2021-10-29 15:03:03 · 85 阅读 · 0 评论 -
Golang的匿名函数
golang中的匿名函数golang中的匿名函数1.匿名函数介绍2.匿名函数使用方式2.1定义时直接调用2.2将匿名函数赋值给一个变量2.3定义全局匿名函数golang中的匿名函数1.匿名函数介绍golang支持匿名函数,如果某些函数仅想在特定位置使用一次,那么可以考虑使用匿名函数。匿名函数也可以实现多次调用。2.匿名函数使用方式2.1定义时直接调用示例代码:package mainimport ( "fmt")func main() { fmt.Println("Hello W原创 2021-09-02 18:23:57 · 2976 阅读 · 0 评论