go
多云的夏天
读小说一样读代码
展开
-
go(16)-VSCode安装插件出错-vscode guru command is not available
用VSCode安装go插件一般都是安装不成功的。从git上直接下源码安装。正解:1.创建目录2.克隆golang.org工具源码3.环境变量修改代理并安装1.创建目录mkdir -p $GOPATH/src/golang.org/x/cd $GOPATH/src/golang.org/x/2.克隆golang.org工具源码git clone https://github.com/golang/tools.gitgit clone https://github.com/g.原创 2022-05-12 22:29:57 · 512 阅读 · 0 评论 -
go(15)-server-base-listen+accept
1.结构图 服务器端的结构与其它语言一样,都是listen+accept2.代码(server.go+main.go)1.结构图 与其它语言的SOCKET一样,listen+acceptserver.gopackage mainimport("fmt""net")type Server struct{ Ip string Port int}//创建一个server的接口func NewServer(ip string,port...原创 2022-05-09 11:37:47 · 336 阅读 · 0 评论 -
go(13)-Go Modules模式-go.mod-go.sum
go module模式原创 2022-05-09 10:55:14 · 731 阅读 · 0 评论 -
go(12)-channel-同步-异步-有缓冲-无缓冲-select
go channel的使用原创 2022-05-08 17:10:44 · 1122 阅读 · 0 评论 -
go(11)-goroutine
goroutine的调用原创 2022-05-08 12:15:28 · 132 阅读 · 0 评论 -
go(10)-结构体标签-json的编解码
1.结构体标签2.json1.结构体标签 1.1定义:type resume struct{ Name string `info:"name" doc:"我的名字"`//key:"info" value "name" `是1左边的按键 Sex string `info:"sex"`}1.2取内容 t:=reflect.TyprOf(str).Elem() //取每个元素 Elem() for ...原创 2022-05-08 11:05:21 · 261 阅读 · 0 评论 -
go(9)-pair-reflect
变量的结构1.基本数据类型pair的使用2.类中pair的使用3.反射reflect变量结构1.基本数据类型package mainimport"fmt"func basefun(){ //pair<statictype:string,value:"aceld"> var a string a="aceld" //pair<type::string,value:"sceld"> //interface这个万能类型原创 2022-05-07 18:58:43 · 323 阅读 · 0 评论 -
go(8)-struct-class-继承多态-interface
1.struct2.class3.继承(父类+子类)4.多态5.interface1.structpackage maintype myint int//定义一个结构体type book struct{ title string auth string}//传递的是副本func ChangeBook(book Book){ book.auth="666"}//传递的是指针func ChangeBook2(book *Book){ .原创 2022-05-07 16:12:38 · 350 阅读 · 0 评论 -
go(7)-内置变量map的3种声明方式+增删改查
内置变量map的3种声明方式原创 2022-05-07 14:04:24 · 316 阅读 · 0 评论 -
go(6)-固定数组-动态数组-slice
1.固定数组2.动态数组3.slice声明方式4.slice追加与截取1.固定数组长度固定,传参的时候,严格匹配数组类型var myArray1 [10]intmyArray2 :=[10]int{1,2,3,4}myArray3 :=[4]int{11,22,33,44}package mainfunc printArray(myArray [4]int){ for index,value := range myArray{ fmt.Println("index..原创 2022-05-07 11:56:35 · 455 阅读 · 0 评论 -
go(5)-defer-函数调用顺序
两个特性:1.defer 我的理解就时函数的压栈出栈。2. return 比defer先调用1.defer 我的理解就时函数的压栈出栈。package mainimport "fmt"func func1(){ fmt.Println("A")}func func2(){ fmt.Println("B")}func func3(){ fmt.Println("C")}func main(){ defer func1() defer func2() defer原创 2022-05-06 22:09:59 · 168 阅读 · 0 评论 -
go(4)-函数的3种类型
1.返回单个值2.返回多个值,匿名3.返回多个值,形参代码:package mainimport "fmt"//func foo1(a string,b int) int{ fmt.Println("a=",a) fmt.Println("b=",b) c:=100 return c}//返回多个值,匿名func foo2(a string,b int) (int,int) { fmt.Println("a=",a) fmt.Println("b=",b) re.原创 2022-05-05 23:24:58 · 199 阅读 · 0 评论 -
go(3)-包的导入与调用-报错package xxx is not in GOROOT
1.包导入与调用2.报错的解决方法1.包导入与调用包结构如下图所示:main.gopackage mainimport( "golangstudy/5_init/lib1" "golangstudy/5_init/lib2")func main(){ lib1.Lib1Test() lib2.Lib2Test()}lib1.gopackage lib1import "fmt"func Lib1Test(){ fmt.Println("lib1Tes原创 2022-05-05 23:15:27 · 562 阅读 · 0 评论 -
go(2)-局部变量与全局变量
1.局部变量的声明(4)2.全局变量的声明(1)3.多变量声明(2)1.局部变量的声明(4)2.全局变量的声明(1)3.多变量声明(2)上代码:ackage mainimport( "fmt")//全局变量var gA int=100var gB =200func main(){ //1.默认值为0 var a int fmt.Println("a=",a) fmt.Printf("type of a=%T\n",a) //2.初始化默认值.原创 2022-05-04 23:23:29 · 614 阅读 · 0 评论 -
go(1)-概述-“hello,go “
hello,go1.优势2.强项3.成就4.缺点原创 2022-05-04 20:58:50 · 585 阅读 · 0 评论 -
go(0)-环境搭建与安装(win10+ubuntu)
1.下载安装2.创建工作目录:D:\go bin、src、pkg3.添加环境变量 GOPATH:D\go4.添加环境变量:PATH: D:\go\bin原创 2022-05-04 10:44:31 · 432 阅读 · 0 评论 -
GO(3)-goroutine和 channel
进程:数据集合的动态执行过程线程:顺控,cpu调度和分派的基本单位协程:用户态线程,速度快Go 用的是MPG 线程模型,倡导用 CSP 并发模型来控制线程之间的任务协作。Go 是通过 goroutine 和 channel 来实现 CSP 并发模型的:goroutine:即协程,Go 中的并发实体,是一种轻量级的用户线程,是消息的发送和接收方;channel: 即通道, goroutine 使用通道发送和接收消息。1.goroutine和channel语法2.消费者和生产者模型3.多..原创 2020-08-05 20:07:01 · 259 阅读 · 0 评论 -
GO(0)-安装-helloWorld
1.下载安装包:https://studygolang.com/dl2.VScode及其插件 2.1 插件中选go 2.2 CTRL+SHIF+P install/update tools 全选,一般不会成功。 打开命令行设置代理:输入:go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,direct输入后重启VSCODE重复2.2,如下图所示表示成功了。3.VSCode...原创 2020-08-01 22:50:31 · 169 阅读 · 0 评论 -
GO(2)-for if-else switch defer
控制语句 for,if-else,switch,defer语法MARK一下。1.forfor init;condition;end{//init在第一次运行前执行,condition是条件判断 circle body }package mainimport "fmt"func main(){ sum1:=0//初始化 for i:=0;i<10;i++{ sum1+=i } ...原创 2020-07-20 19:17:50 · 101 阅读 · 0 评论 -
GO(1)-数据结构 array(数组),slice(切片),map(字典)
1.array(数组)//1.数组,声明时大小就固定下来了。存储类型为T的数组。 var name [size]T//2.简单初始化和使用package mainimport "fmt"func main(){ var numlist1[3]int numlist1[0]=0 numlist1[1]=1 numlist1[2]=2 numlist2:=[3]int{0,1,2}; fmt.Println(numlist1,numl.原创 2020-07-20 19:17:30 · 109 阅读 · 0 评论