go语言

GO开发[一]:golang语言初探

前提是你 提交于 2019-12-17 00:55:31
一.Golang的安装 1.https://dl.gocn.io/ (国内下载地址)    2.https://golang.org/dl/ (国外下载地址) 3.现在studygolang中文网也可以了https://studygolang.com/dl 下载版本: mac darwin-adm64.tar.gz linux amd64.tar.gz windows amd64.msi 4.window编辑器 atom配合go-plus插件 sublime配合gosublime插件; emacs + spacemacs配置(相对来说比较麻烦,也是mac的一个不错的选择.) Goland JetBrains   直接安装的效果:   Windows推荐goland 二 、Ubuntu安装 apt install golang-go root@greg:# go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="" GORACE="" GOROOT="/usr/lib/go-1.7" GOTOOLDIR="/usr/lib/go-1.7/pkg/tool/linux_amd64" CC="gcc" GOGCCFLAGS="-fPIC -m64

Go语言基础之Cookie和Session

被刻印的时光 ゝ 提交于 2019-12-16 15:14:17
Cookie和Session Cookie和Session是Web开发绕不开的一个环节,本文介绍了Cookie和Session的原理及在Go语言中如何操作Cookie。 Cookie Cookie的由来 HTTP协议是无状态的,这就存在一个问题。 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 Cookie是什么 在 Internet 中,Cookie 实际上是指小量信息,是由 Web 服务器创建的,将信息存储在用户计算机上(客户端)的数据文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。 Cookie的机制 Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内

Go语言 4 数组、切片和映射

核能气质少年 提交于 2019-12-16 15:06:05
文章由作者马志国在博客园的原创,若转载请于明显处标记出处:http://www.cnblogs.com/mazg/ 数组是由同构的元素组成。结构体是由异构的元素组成。数据和结构体都是有固定内存大小的数据结构。相比之下,切片和映射则是动态的数据结构,它们根据需要动态增长。 4.1 数组 数组是一系列同一类型数据的集合,数组中包含的每个数据被称为数组元素。一个数组包含的元素个数称为数组的长度,数组长度是固定的。一个数组可以由零个或多个元素组成。 1 数组声明 数组声明的一般形式: var 数组名 [ 长度 ] 类型 示例如下: var arr [10]int //10个元素的整型数组 var ptrs [5]*float64 //5个元素的指针数组,每个指针都指向float64类型 var points [8] struct { x, y int } //8个元素的结构体类型 var arry [2][3]int //2*3的二维整型数组 2 简短声明 与变量的简短声明一样,数组也可以简短声明。如果在数组的长度位置出现的是 “ ... ”省略号,则表示数据的长度是根据初始化值得个数来计算。 a := [3]int{1, 2, 3} // 长度为3的数组 b := [5]int{1, 2, 3} //长度为10,前三个元素为1、2、3,其它默认为0 c := [...]int{4, 5,

Go语言 - 包(package)

↘锁芯ラ 提交于 2019-12-16 12:13:27
在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包、如何导出包的内容及如何导入其他包。 Go语言的包(package) 包介绍 包(package) 是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如 fmt 、 os 、 io 等。 定义包 我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放 .go 文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。 package 包名 注意事项: 一个文件夹下面直接包含的文件只能归属一个 package ,同样一个 package 的文件不能在多个文件夹下。 包名可以不和文件夹的名字一样,包名不能包含 - 符号。 包名为 main 的包为应用程序的入口包 ,这种包编译后会得到一个可执行文件,而编译不包含 main 包的源代码则不会得到可执行文件。 可见性 如果想在一个包中引用另外一个包里的标识符(如变量、常量、类型、函数等)时,该标识符必须是对外可见的(public)。在Go语言中只需要将标识符的首字母大写就可以让标识符对外可见了。 举个例子, 我们定义一个包名为 pkg2 的包,代码如下: package pkg2 import "fmt" // 包变量可见性 var a = 100

go语言小常识

十年热恋 提交于 2019-12-16 03:39:50
1、浮点数的默认类型是float64 例如:foo := 3.0 2、int和uint的大小依赖于机器字长。 3、new关键字分配内存;make初始化map、slice、channel。 4、用零值初始化类型的操作等同于写内存操作。 5、“读”或“写”大于一个机器字的变量时,等同于操作多个机器字,并且操作这些机器字的次序对程序员是透明的。 来源: CSDN 作者: kesenzhang 链接: https://blog.csdn.net/kesenzhang/article/details/103470433

最新Go语言学习路线图 带你通关Go语言-千锋

穿精又带淫゛_ 提交于 2019-12-15 08:58:52
最新Go语言学习路线图 带你通关Go语言-千锋 在近一年的编程语言的排行榜中,Go语言跻身靠前的位置。Go语言具有入门快、程序库多、运行迅速等特点,开发效率和执行效率都是各大编程语言中的佼佼者。企业对于Go语言的使用情况正逐年上升。自发布以来,Go语言就深受明星大厂的喜爱,包括以Java打天下的阿里巴巴,更不用说深爱Go的滴滴、今日头条、小米、奇虎360、京东等知名企业,业界甚至一度看好Go语言有取代Java王者地位的潜力。面对C位出道的Go语言,你还不赶快上手,提前学习一下?! 一个很全面的学习路线图对初学者来说,起到很好的指引作用,如果找不到一个系统专业的学习路线,可能会走很多的弯路,下面,千锋的小编就给大家分享一个最新的Go语言学习路线图。 入门Go语言的同学基础不一,具体可以分成下面几类。 零基础的同学:可能正准备入行或对编程刚开始感兴趣,对计算机、操作系统和网络方面的知识不太了解。 无编程经验或者编程经验较少的同学:可能正在从事其他的技术相关工作,也许可以熟练编写脚本,但是对程序设计的通用知识和技巧还不太了解。 有其他语言编程经验的同学:可能已经是程序员或软件工程师,可以用其他编程语言熟练编写程序,但对Go语言还不太了解。 有一定Go语言编程经验的同学:已有Go语言编程基础,写过一些Go语言程序,急需进阶却看不清途径。 这份Go语言学习路线图

Go语言中的make和new

强颜欢笑 提交于 2019-12-14 19:55:34
相同点: make和new都是用来创建分配类型内存的。 不同点: 先看下面的代码 package main import "fmt" func main(){ var i *int var x = 10 *i=x fmt.Println(*i) }    编译过程会出错 panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x1 addr=0x0 pc=0x48b576] 我们的想法是把 10 赋值 i指向的地址,但是这里由于 *i 没有初始化,所以并不知道 *i的地址是什么,如果直接 *i的赋值为10,那么肯定是不行的(10这个地址没有) 所以要想使用 *i,需要把 x的地址给i,修改成如下代码 var i *int var x = 10 i=&x fmt.Println(*i) 补充: * 代表取地址里内容, &代表取地址 或者使用 new 进行初始化,代码如下: var x = 10 var i *int i = new(int) *i=x fmt.Println(*i) new的源代码如下 它只接受一个参数,这个参数是一个类型,分配好内存后,返回一个指向该类型内存地址的指针。同时请注意它同时把分配的内存置为零,也就是类型的零值。

go函数

非 Y 不嫁゛ 提交于 2019-12-14 02:19:11
go语言有三种类型的函数:   普通的带有名字的函数   匿名函数或者lambda函数   方法 普通函数声明: func 函数名(形式参数列表)(返回值列表){   函数体 } go语言中既支持安全指针,也支持多返回值。 来源: https://www.cnblogs.com/xuezhihao/p/12036493.html

Go语言学习(二)Go语言常量

时间秒杀一切 提交于 2019-12-14 01:52:31
定义:常量是一个简单值的标识符,在程序运行时,不会修改的量(常量是经常使用的量,一般情况下不会发生改变的) 1.常量的应用: 总结: 常量的关键字是const 2.常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。 常量表达式中,函数必须是内置函数,否则编译不过: 说明: 可以看出 Go 语言中 unsafe.Sizeof() 函数: (1)对不同长度的字符串,unsafe.Sizeof() 函数的返回值都为 16,这是因为 string 类型对应一个结构体,该结构体有两个域,第一个域指向该字符串的指针,第二个域为字符串的长度,每个域占 8 个字节,但是并不包含指针指向的字符串的内容,这就解释了unsafe.Sizeof() 函数对 string 类型的返回值始终是16。 (2)对不同长度的数组,unsafe.Sizeof() 函数的返回值随着数组中的元素个数的增加而增加,这是因为unsafe.Sizeof() 函数总是在编译期就进行求值,而不是在运行时,这就意味着,unsafe.Sizeof() 函数的返回值可以赋值给常量,在编译期求值,意味着可以获得数组所占的内存大小,因为数组总是在编译期就指明自己的容量,并且在以后都是不可变的。 (3)对所含元素个数不同的切片unsafe.Sizeof() 函数的返回值都为 24,这是因为对切片来说

go语言开发IDE

元气小坏坏 提交于 2019-12-13 18:49:25
软件下载及绿化方法 GoLand-2018.3 链接:https://pan.baidu.com/s/15AKPDIJIN86vxfriHBjE-g 提取码:060h 选择路径的时候,去掉路径名的版本号信息. 如: C:\Program Files\JetBrains\GoLand 2018.3.1改为C:\Program Files\JetBrains\GoLand goland.exe.vmoptions goland64.exe.vmoptions JetbrainsCrack-4.2-release-enc.jar 将三个激活文件复制到到GoLand的bin目录,C:\Program Files\JetBrains\GoLand\bin,复制完成后,注意修改俩个.vmoptions文件里的内容和实际情况相符。 启动GoLand,选择激活方式, Activition code,在输入框内随便写字符,即可激活. 完成后在GoLand配置GOROOT、GOPATH等路径即可. 另外: 国内开源的一款IDE( liteide ), 你也值得拥有, 比较轻量级. 下载地址: https://sourceforge.net/projects/liteide/files/ 如文档中的云盘连接失效, 请在下面留言. 来源: https://www.cnblogs.com/miaocbin