编程语言go
zerone改变世界
信息安全中的一滴水,网络安全中的一颗尘。
展开
-
vscode在windows下golang开发环境搭建
git安装git官网:https://git-scm.com/Downloads-->Windows-->64-bit Git for Windows Setup下载后,双击安装文件,正常安装即可go安装go官网:https://golang.google.cn/Download go-->go1.12.13.windows-amd64.msi下载后,双击安装文件...原创 2019-11-17 23:02:32 · 397 阅读 · 0 评论 -
go语言之切片复制与追加
示例代码:package mainimport ( "fmt")func main() { // copy示例 // 创建一个新的更大的切片并把原分片的内容都拷贝过来 sl_from := []int{1, 2, 3} sl_to := make([]int, 10) n := copy(sl_to, sl_from) fmt.Println("num:", n, "it...原创 2019-05-06 14:25:49 · 1234 阅读 · 0 评论 -
go语言之切片内存结构
当相关数组还没有定义时,我们可以使用 make() 函数来创建一个切片,同时创建好相关数组slice1 := make([]type, len)orslice1 := make([]type, len, cap)// 使用make初始化切片test := make([]int, 2, 5)// 对应的内存结构test --> []int --> ptr | len(2...原创 2019-05-06 13:57:23 · 553 阅读 · 0 评论 -
go语言之闭包
代码示例package mainimport ( "fmt" "strings")func main() { // 匿名函数,不能够独立存在(编译器会返回错误:non-declaration statement outside function body) // 可以被赋值于某个变量,即保存函数的地址到变量中 // 然后通过变量名对函数进行调用 test := func(x...原创 2019-05-06 11:37:18 · 301 阅读 · 0 评论 -
go语言之函数变参
介绍go语言中函数变参的使用方法示例代码如下package mainimport "fmt"// 求和,变长参数使用func sum(title string, nums ...int) { var sumValue int // 变长参数为切片类型 for _, num := range nums { sumValue += num } fmt.Println(ti...原创 2019-04-30 17:51:07 · 315 阅读 · 0 评论 -
go语言之sync.Map
简介go语言自带的map,不具备线程安全;所以为了实现线程安全,可以使用sync.Map具体示例见如下代码package mainimport ( "fmt" "sync")func main() { var testMap sync.Map // 获取a对应的键值应该失败 valueA,ok := testMap.Load("a") if ok { fmt.Pr...原创 2019-04-30 16:53:17 · 665 阅读 · 0 评论 -
go语言之回调函数
函数可以作为其它函数的参数进行传递,然后在其它函数内调用执行,一般称之为回调。代码示例:package mainimport "fmt"func main() { // 回调函数示例 // 使用函数Add作为函数AddOne的参数,然后在AddOne中对函数Add进行调用 y := AddOne(2, Add) fmt.Println("y:", y)}// 求和函数f...原创 2019-05-06 10:41:21 · 1550 阅读 · 0 评论 -
Go语言并发同步初体验
示例代码package mainimport ( "fmt" "sync")func sendMsg(msg_ch chan string, wg *sync.WaitGroup) { fmt.Println("sendMsg start") msg_ch <- "hello 1" //向通道中写数据 fmt.Println("sendMsg end") wg.Do...原创 2019-04-08 11:34:23 · 160 阅读 · 0 评论 -
go build ldflags
示例go build -ldflags "-w -s -X main.Version=${VERSION} -X main.Build=${BUILD}"解释-w 去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s 去掉符号表,panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果,-X 设置包中的变量值...原创 2019-04-10 11:29:36 · 14819 阅读 · 0 评论 -
docker下beego开发环境搭建
镜像制作编辑Dockerfile#base imageFROM golangMAINTAINER feng xiao xiaofeng1@chinaddos.com# ENV GOPATH /go# Install beego & beeRUN go get github.com/astaxie/beegoRUN go get github.com/beego/bee...原创 2019-02-27 17:04:00 · 1966 阅读 · 0 评论 -
Go语言之Map
定义 Map可以使用内建函数 make 也可以使用 map 关键字来定义 Map:/* 声明变量,默认 map 是 nil */var map_variable map[key_data_type]value_data_type/* 使用 make 函数 */map_variable := make(map[key_data_type]value_data_type)如果不初始化 m...原创 2018-11-30 16:42:32 · 632 阅读 · 0 评论 -
Go语言之切片
切片截取示例:package mainimport "fmt"func main() { /* 创建切片 */ numbers := []int{0,1,2,3,4,5,6,7,8} printSlice(numbers) /* 打印原始切片 */ fmt.Println("numbers ==", numbers) /* 打印子切片从索引1...原创 2018-11-30 16:21:23 · 411 阅读 · 0 评论 -
Go语言之函数方法
说明:Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。语法格式如下:func (variable_name variable_data_type) function_name() [return_type]{ /* 函数体*/}示例代码:package maini...原创 2018-11-30 15:53:16 · 246 阅读 · 0 评论 -
Go语言之匿名函数(闭包)使用
说明:匿名函数的优越性在于可以直接使用函数内的变量,不必申明示例代码1:package mainimport ("fmt""strings")func makeSuffix(suffix string) func(string) string { return func(name string) string { if strings.HasSuffix(name, su...原创 2018-11-30 15:39:41 · 587 阅读 · 0 评论 -
Go语言之iota使用
说明iota,特殊常量,可以认为是一个可以被编译器修改的常量。iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次。用法1package mainimport "fmt"func main() { const ( a = iota //0 ...原创 2018-11-30 14:48:30 · 867 阅读 · 0 评论 -
Go语言协程和无缓冲通道使用
示例代码:package mainimport ( "fmt" "time")func hello(channel_hello chan string) { fmt.Println("hello.") //确保hello打印输出 time.Sleep(1*time.Second) //发送数据到通道 channel_hello <- "hello_channel...原创 2018-11-30 10:10:08 · 524 阅读 · 0 评论 -
beego开发环境搭建
开发大致为在centos下搭建编译环境,在windows7下使用goland工具编码,开展beego框架下的restapi开发。centos7的安装 在windows7下安装VM虚拟机工具软件 去centos7官网下载镜像后在VM中进行安装 安装完之后,设置网络能够连接外网,并通过yum安装常用的工具软件 设置VM共享文件夹来共享centos和windows之间的文件通信 ...原创 2018-10-03 13:40:54 · 1184 阅读 · 0 评论