go_fmt

学习go语言的第一天

偶尔善良 提交于 2020-10-05 06:49:08
Go语言的特点 1.无继承和多态 2.强一致性 3.接口不需要显式声明(Duck Typing) 4.无异常处理 5.基于首字母的可访问特性 6.不用的Import或变量会引起编译错误 7.完整且卓越的标准库包 Go语言的优势 1.易上手 2.效率高 3.出身名门(Google公司) 4.自由高效,支持并发编程,包括过程,面向对象,面向接口,函数式编程。 5.强大的标准库:互联网应用,系统编程和网络编程 6.部署方便:二进制文件,Copy部署 7.简单的并发:goroutines和通道(创新之处) 8.稳定性:提供了软件生命周期的各个环节的工具:如 go tool,go fmt,go test 核心特性 1.静态语言 2.天生并发 3.内置GC 4.安全 5.语法简单 6.编译快速 3.环境搭建: 下载地址: https://golang.google.cn/dl/ 安装步骤很简单 Next完事 4.安装开发工具 Goland以及配置 下载地址:https://download.jetbrains.com/go/goland-2019.2.3.exe 安装步骤也是一直Next 运行时遇到的问题: CreateProcess error=216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者。 解决方式:

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:这是接口

Go 语言编程 — go 指令

纵然是瞬间 提交于 2020-08-11 05:20:28
目录 文章目录 目录 go 指令 go run 试运行 go build 编译 go install 安装 go get 下载并安装 go test 测试 go env 环境变量 go fmt 格式化源代码 go 指令 Golang 本身就是一个程序,包含了编译器以及一些辅助指令。 go run 试运行 go run 会快速执行指定的 .go 源码文件,不会生成二进制文件,常用于试运行代码。 go build 编译 go build 用于便于 Golang 程序的源码,生成二进制文件。 go install 安装 当我们编写好 Go 程序之后可以使用 go install 来安装他,会自动生成可执行文件,并放到操作系统的 $GOPATH/bin 目录下。当然了,前提是我们编译的是可执行文件,如果是一个普通的包,会被编译生成到 $GOPATH/pkg 目录下该文件以 .a 结尾。 示例: $ cd $GOPATH/src/helloworld $ go install $ ll $GOPATH/bin -rwxr-xr-x 1 mickeyfan staff 2.1M 7 11 18:03 helloworld $ helloworld Hello World! go get 下载并安装 go get 会做两件事情: 从远程下载需要用到的包。 执行 go install 指令。 go

Go学习笔记(五)Go命令工具

时间秒杀一切 提交于 2020-04-28 12:52:35
上篇 Go学习笔记(四)Go自动化测试框架 1、go build 这个命令可以直接使用,也可以带上代码包或源码文件使用。   如果是直接使用,表示试图编译当前目录所对应的代码包,如果当前目录不是一个有效的代码包(包含在 $GOPATH/src 目录下)则会报错;如果带上代码包名,则表示编译指定的代码包;如果带上源码文件,则表示编译指定源码文件。   GO语言的源码文件分为三类,包括命令源码文件、库源码 文件和测试源码文件。如果编译的是命令源码文件,或包含命令源码文件的包(main包)时,编译通过后会生成可执行文件;反之则不会生成任何文件,只是做检查性编译。   可以在执行 go build 命令时,加上一些标记,如:   -v 标记,可以把命令执行过程中构建的包名(包含编译过程中依赖的包)打印出来,如果 go build 的是一个源码文件,则会打印出的包名为 command-line-arguments,这是编译源码文件时生成的虚拟包名,所以看到不用觉得奇怪。   -x 标记,可以打印编译期间所用到的所有 shell 命令。   -o 标记,用来指定生成文件的路径和名称。   -a 标记,强制重新编译。   -buildmode=shared 标记,这个参数可以指定当前编译生成的结果类型,如静态库和动态库。GO语言默认使用静态编译,好处是部署时非常简单,但使用动态库