studygolang

Go环境搭建

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-19 01:44:52
安装 Go Go语言的优劣,这里就不介绍了,下面直接讲Go 的安装: Go 的官方网站 : http://golang.org/ (需要翻墙软件) 国内下载地址 : http://www.golangtc.com/download 下载对应平台的安装包。注意区分32位还是64位操作系统。 安装包下载完成之后,安装过程很简单,傻瓜式下一步到底就好了。 Go 环境变量 安装go 的时候,安装程序会自动把相关目录写到系统环境。但是如果是zip 的安装,需要自己手动添加。 主要配置以下几个: GOROOT:Go 安装后的根目录(例如:D:\Go),安装过程中会由安装程序自动写入系统环境变量中。 GOBIN:Go 的二进制文件存放目录(%GOROOT%\bin) PATH:需要将 %GOBIN% 加在 PATH 变量的最后,方便在命令行下运行。 当环境变量都配置完成之后,Go 就已经安装完毕了。打开命令行,运行 go 命令,就可以看到如下的提示了。 Go 工作空间 GOPATH : Go 的工作空间,就是我们的开发和依赖包的目录(例如:我的是 D:\Go_Path\go) ,此目录需要手动配置到系统环境变量 GOPATH 工作空间是一个目录层次结构,其根目录包含三个子目录: src:包含 Go 源文件,注意:你自己创建依赖的package,也要放到GOPATH 目录下,这样才能够被引用到。

[GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题

痴心易碎 提交于 2021-02-02 14:53:12
作为网络安全初学者,会遇到采用Go语言开发的恶意样本。因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识;另一方面是分享与读者,希望大家一起进步。前文介绍了什么是GO语言及为什么我要学习Golang;这篇文章将介绍Go的编译运行、语法规范、注释转义及API标准库知识。 这系列文章入门部分将参考“尚硅谷”韩顺平老师的视频和书籍《GO高级编程》,详见参考文献,并结合作者多年的编程经验进行学习和丰富,且看且珍惜吧!后续会结合网络安全进行GO语言实战深入,加油~ 这些年我学过各种编程语言,从最早的C语言到C++,再到C#、PHP、JAVA,再到IOS开发、Python,到最新的GO语言,学得是真的杂。有时候觉得编程语言恰恰是最简单的,而通过一门编程语言能够解决实际问题或深入底层才是其价值所在,并且当我们学好一门编程语言后,其他编程语言都非常类似,殊途同归,学起来也很迅速。 源码下载地址: https://github.com/eastmountyxz/Go-learning 前文参考: [GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及 [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及 [GO语言基础] 三.变量声明、数据类型、标识符及编程练习12题 文章目录 一.变量 1.什么是变量 2.变量的声明 3

mac go安装和环境变量配置

帅比萌擦擦* 提交于 2021-01-15 19:22:43
1.下载安装包,地址: https://studygolang.com/dl 选择mac 推荐下载版,解压安装即可 2.配置环境变量: go语言安装好后,默认的安装路径是:/usr/local/go,可以进去看看各种安装文件 sudo vim /Users/YOUMACNAME/.bash_profile 打开 .bash_profile 文件,在最后一行输入: export GOPATH=/usr/local/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOBIN 保存,执行 source .bash_profile 文件,使之生效 3.查看版本: 执行 go version 查看版本,go env 查看环境变量 4.warning提示解决: warning: GOPATH set to GOROOT (/usr/local/go) has no effect 表示,go语言的安装root目录是/usr/local/go,那么go语言的开发项目路径也是这个,就不太合适。因此,需要修改go语言项目的路径 参考路径: sudo vim /Users/lihanwen/.bash_profile 修改: GOPATH=/Users/YOUMACNAME/work/go_project (参考路径) 再执行: source .bash

go笔记-pprof使用

自闭症网瘾萝莉.ら 提交于 2020-11-20 07:18:36
pprof如何进行采样: https://studygolang.com/articles/11873 go tool pprof http://localhost:6060/debug/pprof/profile go tool pprof http://localhost:6060/debug/pprof/heap go tool pprof http://localhost:6060/debug/pprof/block go tool pprof http://localhost:6060/debug/pprof/mutex cpu(CPU Profiling): $HOST/debug/pprof/profile ,默认进行 30s 的 CPU Profiling,得到一个分析用的 profile 文件 block(Block Profiling): $HOST/debug/pprof/block ,查看导致阻塞同步的堆栈跟踪 goroutine: $HOST/debug/pprof/goroutine ,查看当前所有运行的 goroutines 堆栈跟踪 heap(Memory Profiling): $HOST/debug/pprof/heap ,查看活动对象的内存分配情况 mutex(Mutex Profiling): $HOST/debug/pprof/mutex

go标准库的学习-crypto/sha256

旧巷老猫 提交于 2020-11-14 01:41:47
参考:https://studygolang.com/pkgdoc 导入方式: import " crypto/sha256 " sha256包实现了SHA224和SHA256哈希算法,参见FIPS 180-4。 Constants const BlockSize = 64 SHA224和SHA256的字节块大小。 const Size = 32 SHA256校验和的字节长度。 const Size224 = 28 SHA224校验和的字节长度。 func Sum256 func Sum256(data [] byte ) [Size] byte 返回数据的SHA256校验和。 举例: package main import ( " fmt " " crypto/sha256 " ) func main() { sum : = sha256.Sum256([] byte ( " hello world\n " )) fmt.Printf( " %x\n " , sum) // a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447 } func New func New() hash.Hash 返回一个新的使用SHA256校验算法的hash.Hash接口。 可见 go标准库的学习-hash 举例:

golang连接达梦数据库的一个坑

岁酱吖の 提交于 2020-10-24 12:25:05
golang连接达梦数据库的一个坑 有一次项目中用到了达梦数据库,后端语言使用的 golang ,达梦官方并未适配专门的 golang 连接方式,正一筹莫展的时候发现达梦提供了 odbc 的连接,这样可以使用类似 mssql 的 odbc 连接方式连接达梦数据库。 使用的达梦数据库版本为 DM8 达梦数据库开启 odbc 连接 参考博客1 、 参考博客2 参照上面两个博客内容配置 odbc 连接 golang 代码 一些参考文档: package main import ( "fmt" _ "github.com/alexbrainman/odbc" // google's odbc driver "github.com/go-xorm/xorm" "xorm.io/core" "github.com/axgle/mahonia" ) type Address struct { Addressid int64 `xorm:"addressid"` Address1 string `xorm:"address1"` Address2 string `xorm:"address2"` City string `xorm:"city"` Postalcode string `xorm:"postalcode"` } // 字符串解码函数,处理中文乱码 func

VSCode 开发 Go 程序也可以和 GoLand一样强大

安稳与你 提交于 2020-10-04 07:40:52
好的编程语言搭配好的开发工具,那必定是如虎添翼。Gopher 们应该都知晓 GoLand,这是 IDEA 专门为 Go 语言开发的集成开发环境(IDE)。此前 IDEA 对 Go 的支持是通过插件的,后来开发独立的 IDE,可见 IDEA 看到了 Go 的发展和前景。 今天这篇文章,主要给大家介绍如何将 VSCode 打造成为一个强大的 Go 开发工具。 vscode-go 插件 打开 VSCode,切换到扩展搜索界面,输入 go 搜索;或者打开一个 Go 源文件,VSCode 会建议你安装 vscode-go 插件。 之所以叫 vscode-go,是因为在 GitHub 的项目名是这个,而在 VSCode 中,插件的名称是 Go。该插件最初是微软维护的,目前已经交给 Go Team 维护。 安装完后,该插件会提示你安装它的一些依赖。如果没有提示,可以点击 Analysis Tools Missing。最后点击 Install 安装。 在 Output 窗口会看到类似如下的输出: Tools environment: GOPATH=/Users/xuxinhua/go Installing 13 tools at /Users/xuxinhua/go/bin in module mode. gocode gopkgs go-outline go-symbols guru

Goland快捷键整理

我只是一个虾纸丫 提交于 2020-10-01 16:25:38
Golang集成了多种IDE的快捷键,可以进入选项进行设置 打开Golang后,点击文件-->设置-->keymap 一、查询类快捷键 CTRL+N 查找类 CTRL+SHIFT+N 查找文件 CTRL+SHIFT+ALT+N 查找类中的方法或变量 CTRL+B 快速打开光标处的类或方法 CTRL+ALT+B 找所有的子类 CTRL+SHIFT+B 找变量的类 CTRL+G 定位行 CTRL+F 在当前窗口查找文本 CTRL+SHIFT+F 在指定窗口查找文本 CTRL+R 在 当前窗口替换文本 CTRL+SHIFT+R 在指定窗口替换文本 ALT+SHIFT+C 查找修改的文件 CTRL+E 最近打开的文件 F3 向下查找关键字出现位置 SHIFT+F3 向上一个关键字出现位置 F4 查找变量来源 CTRL+ALT+F7 选中的字符查找工程出现的地方 CTRL+SHIFT+O 弹出显示查找内容 ALT+F1 查找文件所在目录位置 CTRL+H 显示类结构图 CTRL+Q 显示注释文档 CTRL+SHIFT+I 简短查看源定义 CTRL+SHIFT+P 查看表达式类型(在表达式上或者表达式末尾使用) 二、自动代码 Alt+Enter 导入包,自动修正 CTRL+ALT+L 格式化代码 CTRL+ALT+I 自动缩进 CTRL+ALT+O 优化导入的类和包 ALT+INSERT

Effective GO

一曲冷凌霜 提交于 2020-09-27 02:58:21
最近有人推荐Effective Go,这本书算是给初学者看的,因为已经看多很多Go方面的书了,所以再看这本书,总体收获较小,文章地址:https://learnku.com/docs/effective-go/2020 讲述的知识里,有几点印象深刻一些,在这里分享出来 格式化 go fmt:https://www.jianshu.com/p/104b33439ac2 new和make区别 new:用来分配内存的内建函数, 但与其它语言中的同名函数不同,它不会 初始化 内存,只会将内存 置零 。 也就是说, new(T) 会为类型为 T 的新项分配已置零的内存空间, 并返回它的地址,也就是一个类型为 *T make:只用于创建切片、映射和信道,并返回类型为 T (而非 *T )的一个 已初始化 (而非 置零 )的值。 出现这种用差异的原因在于,这三种类型本质上为引用数据类型,它们在使用前必须初始化 数组和切片的关系 切片是对数组的引用 如果切片范围没有超过数组长度,则两者可以认为是完全相同的东西 如果切片范围超过数组长度,会自动创建一个新的底层数组,取消对原数组的引用,数组和切片便分隔开了 type type File struct/type Integer int:这是结构体,也是类型,实现了函数便是类 type IFile interface:这是接口