Go语言学习笔记【1】 基础知识

【声明】

非完全原创,部分内容来自于学习其他人的理论和B站视频。如果有侵权,请联系我,可以立即删除掉。

一、Go语言简介

1、 发展史

2009年11月10日,Go语言正式发布,它是一种强静态类型、编译型语言,它专对多处理器系统应用程序的编程进行了优化,对于对于高并发,多线程的开发场景具有天然的优势

1.1 优势

  • 可以直接编译成机器码,不依赖其他库
  • 丰富的标准库,特别是网络库非常强大
  • 内置runtime,支持垃圾回收
1.2 应用场景
  • 服务器编程,例如处理日志、数据打包、虚拟机处理、文件系统等
  • 网络编程,包括Web应用、API应用、下载应用
  • 内存数据库,如google开发的groupcache,couchbase的部分组建
  • 云平台,例如现目前很火爆的k8s 也是利用go语言进行开发完成
  • 分布式系统,数据库代理器等

二、环境搭建

1、 安装Go语言

1.1 下载安装包

官网下载网址: https://www.golangtc.com/download
国内下载地址: https://studygolang.com/dl
中文在线文档: https://studygolang.com/pkgdoc

1.2 win版本安装

一般有zip压缩包和msi的安装方式:

  • zip解压就可以使用,但是需要自行配置go语言环境
  • msi安装之后,会自动设置环境变量

安装的路径中不应该有中文,否则会导致程序找不到路径
在这里插入图片描述

1.3 确认安装成功

进入命令提示符,敲go versiongo env能够显示go语言安装的信息,则表示安装成功
cmd截图

2、 go语言标准命令

安装了go语言之后,就直接可以使用其标准命令来处理Go语言代码,常见的go语言代码的命令和工具有:

build:用于编译给定的代码包或Go语言源码文件及其依赖包。
clean:用于清除执行其他go命令后遗留的目录和文件。
doc:用于执行godoc命令以打印指定代码包。
env:用于打印Go语言环境信息。
fix:用于执行go tool fix命令以修正给定代码包的源码文件中包含的过时语法和代码调用。
fmt:用于执行gofmt命令以格式化给定代码包中的源码文件。
get:用于下载和安装给定代码包及其依赖包(提前安装git或hg)。
list:用于显示给定代码包的信息。
run:用于编译并运行给定的命令源码文件。
install:编译包文件并编译整个程序。
test:用于测试给定的代码包。
tool:用于运行Go语言的特殊工具。
version:用于显示当前安装的Go语言的版本信息。

3、 安装IDE

go语言安装包安装之后,编译代码时,需要通过命令提示符进入代码所在路径下进行编译,不方便代码的管理。为了便于开发,一般需要选择一款开发工具,常见的有:

  • LiteIDE:一款开源、跨平台的轻量级 Go 语言集成开发环境(IDE)
  • eclipse:需要下载插件
  • Goland:由 JetBrains 公司开发的一个新的商业 IDE,提供了针对Go语言的编码辅助和工具集成。

一般来说,使用免费的liteIDE可以满足日常使用,下载网址:http://liteide.org/cn/。windows版本直接安装即可。

4、 go语言的Hello world

如下,是go语言版本的Hello World。由于此处只有一个go文件,因此文件的开头package必须声明一个main的包名,并且在该包中包含一个叫main()的函数作为go语言可执行程序的起点。

//HelloWorld.go
package main
import ("fmt")

func main() {
   
    fmt.Println("Hello World")
}

在package声明了包名之后,需要使用import导入程序所依赖的包,比如本例中的Println所属的包就是fmt

接下来就是函数部分。go语言的函数都需要使用关键字func开头,main函数不能带参数,也不能定义返回值

进入到对应的目录下即可编译和运行
在这里插入图片描述

三、Go语言基础知识

1、 命名

命名规则:必须以一个字母或下划线开头,后面可以跟任意数量的字母、数字或下划线,且不能与关键字重名。命名的规则和C语言、Java一样。

Go语言的关键字有25个:

break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var

另外还有30多个预定义的名字:

内建常量: 
		true false iota nil
内建类型: 
    	int int8 int16 int32 int64
    	uint uint8 uint16 uint32 uint64 uintptr
    	float32 float64 complex128 complex64
    	bool byte rune string error
内建函数: 
    	make len cap new append copy close delete
    	complex real imag
    	panic recover

2、 变量

变量是程序运行期间可以改变的量,相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。

2.1 变量的声明

Go语言使用关键字var来声明变量。而C、Java等语言中直接使用类型 变量名的方式声明变量。

	//定义单个变量
	var v1 int

    //同时定义多个变量:只能同一种类型
    var v2, v3 int 

	//同时定义多个变量:变量可以不同类型
    var (
        v4 int
        v5 bool
    )

2.2 变量初始化

初始化时, var关键字在:=自动推导初始化时不需要写出,如下:

package main
import (
	"fmt"
	"reflect"
)

func main() {
   
	var v1 int = 1		// 普通初始化的方式
    var v2 = 2			// 编译器自动推导类型的初始化方式
    v3 := 3				//编译器自动推导类型的初始化方式:不用写var关键字
    v4 := 4.0
    v5 := false
    fmt.Println("v3 type is ", reflect.TypeOf(v3))
    fmt.Println("v4 type is ", reflect.TypeOf(v4))
    fmt.Printf("v5 type is %T\n", v5)
	fmt.Printf("v1+v2 type is %T\n", v1+v2)
}

在这里插入图片描述

注意:var v1 intv1:=1不能同时使用,否则会报错;因为:=左侧的变量必须是未声明的

2.3 变量赋值

go语言赋值类似于python,可以多重赋值,如下:

	var v1 int = 1		//初始化时赋值
	
	//先声明后赋值
	var v2, v3, v4 int
	v2 = 2
	v3
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值