摘要:
package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) func main() { //只读方式打开文件 file ,err := os.Open("./main.go") if err != nil { fmt.Println(err 阅读全文
摘要:
1.下载驱动 go get "github.com/go-sql-driver/mysql" 2.数据库连接(插入和查询) package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" _ "github.com/go-s 阅读全文
摘要:
1.返回byte和string类型 context.Writer.Write([]byte("fullpath="+fullpath)) context.Writer.WriteString("fullpath"+fullpath) 2.返回JSON package main import ( "g 阅读全文
摘要:
1.ShouldBindQuery(获取GET)和ShouldBind(获取POST) package main import ( "fmt" "github.com/gin-gonic/gin" "log" ) func main(){ engine := gin.Default() engine 阅读全文
摘要:
go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct 项目目录下 go mod init gin go mod edit -require github.com/gin-gonic/gin@latest 阅读全文
摘要:
1.engine实例的创建 func main(){ engine := gin.Default() //定义个GET请求 /*engine.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "hello World!") })*/ // 阅读全文
摘要:
反射 反射是程序运行期间对程序本身进行访问和修改的能力 类型和种类 : 种类 底层的类型 func reflectFn(x interface{}){ v := reflect.TypeOf(x) //获取类型 fmt.Println(v.Name()) //获取类型 fmt.Println(v.K 阅读全文
摘要:
1.互斥锁 互斥锁是对共享资源进行控制,在并发情况下只允许一个对其操作(一个协程访问时其他的都不能访问) var count = 0 var wg sync.WaitGroup var mutex sync.Mutex //声明一个互斥锁 func test(){ mutex.Lock() coun 阅读全文
摘要:
通道(Channel) /* 通道(channel)是用来传递数据的一个数据结构。 */ ch1 := make(chan int ,2) //创建一个可读可写的双向管道 ch1 <- 10 ch1 <- 12 m1 := <-ch1 m2 := <-ch1 fmt.Println(m1,m2) c 阅读全文
摘要:
进程和线程 进程: 程序在操作系统中的一次执行过程,是系统进行资源分配和调度的基本单位,每一个进程都有自己的一块地址空间 线程: 线程是进程的一个执行实例 一个进程可以创建多个线程 同一个进程中的多个线程可以并发执行 并发和并行(针对多线程) 并发: 多个线程同时竞争一个位置,竞争到的才可以执行,每 阅读全文