
Go
文章平均质量分 57
cj_286
相信自己!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bad file descriptor
以下代码在进行文件写入时,报了一个panic: write defer-file.txt: bad file descriptor错误func writeString(){ var f *os.File var err error if checkFileIsExist(path){ f,err = os.OpenFile(path,os.O_APPEND,0666) fmt原创 2017-12-21 16:27:50 · 27877 阅读 · 0 评论 -
database/sql数据库驱动
接口定义Go没有内置的驱动支持任何的数据库,而是定义了database/sql接口,要用户基于驱动接口开发相应数据库的驱动。GitHub上有许多基于database/sql接口开发的不同数据库驱动,基于Go提供的接口标准来开发的驱动的好处就是当你要换驱动时,只需要导入相应的驱动,改一下打开的driverName和dataSourceName即可,其它的基本不需要动。MySql驱动比如githu...原创 2018-05-18 14:22:43 · 4110 阅读 · 0 评论 -
Request参数解析
Request结构Request结构主要由以下部分组成URL字段Header字段Body字段Form字段、PostForm字段和MultipartForm字段type Request struct { Method string URL *url.URL Proto string // "HTTP/1.0" ProtoMajor int // 1 Pro...原创 2018-07-23 10:19:39 · 16682 阅读 · 0 评论 -
Go嵌入类型及其方法的使用
Go语言有一个特性让我们只声明一个成员对应的数据类型而不指名成员的名字,这类成员就叫匿名成员。匿名成员的数据类型必须是命名的类型或指向一个命名的类型的指针。匿名成员type Shape struct {}type Circle struct { Shape //Shape匿名成员}任何类型都可以作为结构体的匿名成员,使用匿名成员不仅可以用简短的点运算符语法选择匿名成员嵌套的成员,也可以用于...原创 2018-05-29 13:31:37 · 1166 阅读 · 0 评论 -
Go后台项目实战
本项目完全使用原生开发,没有使用任何WEB框架(如:gin,beego,Martini等),和ORM(如:gorm,xorm,beego)三层架构三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)...原创 2018-05-28 11:49:24 · 20797 阅读 · 0 评论 -
List双向链表
container/list是一个双向链表,以下是list的定义与使用双向链表的结构定义// Element is an element of a linked list.type Element struct { // Next and previous pointers in the doubly-linked list of elements. // To simplify the i...原创 2018-05-07 20:02:48 · 373 阅读 · 0 评论 -
Intellij IDEA创建Go工程
安装Go插件安装好Go插件后可能需要重启,之后就可以在IDEA中创建go工程了创建工程注意:创建的工程(test)一定要放到src文件夹中,不然工程中创建的其它go文件对工程将不可见test工程创建完成,但是现在导包只能导入Global GOPATH下的文件,自己在工程中新建的go文件是不可见的,所以需要设置工程级GOPATH设置Project GOPATH设置完Project GOPATH,就可...原创 2018-05-04 11:15:33 · 15461 阅读 · 1 评论 -
Go http Server
创建http服务的三种实现方式方式1func main() { http.HandleFunc("/hello",hello) err := http.ListenAndServe(":8080",nil) if err != nil { log.Panic(err) }}func hello(w http.ResponseWriter,r *http.Request) { ...原创 2018-05-09 17:49:33 · 5122 阅读 · 0 评论 -
gob编解码
要让数据对象能在网络上传输或存储,我们需要进行编码和解码。现在比较流行的编码方式有JSON,XML等。然而,Go在gob包中为我们提供了另一种方式,该方式编解码效率高于JSON。gob是Golang包自带的一个数据结构序列化的编码/解码工具源和目的地值/类型不需要完全对应。在接收变量中,但从发送类型或值丢失的字段将在目标中被忽略。如果在两个字段中都存在同名的字段,则它们的类型必须兼容。接收器和发送...原创 2018-04-18 11:36:03 · 3318 阅读 · 0 评论 -
Go 方法与接口
方法在函数声明时,在其名字之前放上一个变量,即是一个方法,这个附加的参数会蒋该函数附加到这种类型上,即相当于为这种类型定义了一个独占的方法.如果函数声明时,名字前面没有接收变量,即是一个函数.在Go语言里,我们为一些简单的数值,字符串,slice,map来定义一些附加行为很方便,方法可以被声明带任意类型,只要不是一个指针或者一个interface在声明方法时,如果一个类型名本身是一个指针的话,是不...原创 2018-04-04 10:16:35 · 865 阅读 · 0 评论 -
goroutine,信道(channel),死锁
goroutine,信道(channel),死锁的一些重点总结信道(channel)是goroutine之间互相通讯的东西,就是在做goroutine之间的内存共享,默认的信道的存消息和取消息都是阻塞的,这就叫做无缓冲的信道,也就是说,无缓冲的信道在取消息和存消息的时候都会挂起当前的goroutine,除非另一端已经准备好。var ch chan int = make(chan int)func...原创 2018-03-14 14:45:40 · 2853 阅读 · 0 评论 -
go等待一组协程结束的实现方式
go提供了sync包和channel来解决协程同步和通讯。方式1:sync.WaitGroup是等待一组协程结束,sync.WaitGroup只有3个方法,Add()添加一个计数,Done()减去一个计数,Wait()阻塞直到所有任务完成。package mainimport ( "fmt" "sync" "time")var wg sync.WaitGroup //定义一个同步等...原创 2018-03-13 11:54:40 · 19314 阅读 · 5 评论 -
Go笔记
1.切片func main(){var num []int = []int{0,0,0,0,0}fmt.Println(num)modifyArray(num)fmt.Println(num)}func modifyArray(ar []int){//传递的只是切片,底层还是指向同一个数组ar[1] = 22fmt.Printf("ar[1] : %d\原创 2017-12-26 10:47:51 · 2441 阅读 · 0 评论 -
Windows下部署安装Docker
Docker有Docker Community Edition(社区版)和Docker Enterprise Edition(企业版),但是对于微软Windows 10专业版或者企业版64位才可以直接安装Docker,对于旧版本Windows需要安装Dorker Toolbox安装完成后桌面会出现3个快捷图标(1) Oracle VM VirtualBox: 虚...原创 2018-08-26 22:15:26 · 1953 阅读 · 0 评论