【golang学习总结】1golang概述及helloworld入门

本文介绍SpringBoot相关内容。和【跨考菌】一起加油吧~

【golang学习总结】1golang概述及helloworld入门_第1张图片

如果你有收获,记得帮博主一键三连哦


1 golang概述

1.1 golang创造的原因

【golang学习总结】1golang概述及helloworld入门_第2张图片

1.2 golang的特点

Go 语言保证了既能到达静态编译语言的安全和性能(C语言), 又达到了动态语言开发维护的高效率(python), 使用一个表达式来形容 Go 语言: Go = C + Python , 说明 Go 语言既有 C 静态语言程
序的运行速度, 又能达到 Python 动态语言的快速开发。

1)从 C 语言中继承了很多理念, 包括表达式语法, 控制结构, 基础数据类型, 调用参数传值, 指针等等, 也保留了和 C 语言一样的编译执行方式及弱化的指针
举一个案例(体验):

//go 语言的指针的使用特点(体验)
func testPtr(num *int) {
     
	*num = 20
}

2)引入包的概念, 用于组织程序结构, Go 语言的一个文件都要归属于一个包, 而不能单独存在。

【golang学习总结】1golang概述及helloworld入门_第3张图片

3)垃圾回收机制, 内存自动回收, 不需开发人员管理
4)天然并发 (重要特点)
(1) 从语言层面支持并发, 实现简单
(2) goroutine, 轻量级线程, 可实现大并发处理, 高效利用多核。
(3) 基于 CPS 并发模型(Communicating Sequential Processes )实现
5)吸收了管道通信机制, 形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute之间的相互通信。
6)函数可以返回多个值。 举例:
//写一个函数, 实现同时返回 和, 差

//go 函数支持返回多个值
func getSumAndSub(n1 int, n2 int) (int, int ) {
     
	sum := n1 + n2 //go 语句后面不要带分号.
	sub := n1 - n2
	return sum , sub
}

7)新的创新: 比如切片 slice、 延时执行 defer

2 golang安装

官网:https://golang.org/dl/
【golang学习总结】1golang概述及helloworld入门_第4张图片

2.1 window安装golang

下载zip包,解压到指定目录。我解压在D:\develop\golang目录中。
【golang学习总结】1golang概述及helloworld入门_第5张图片
下面是目录下的文件夹的功能介绍:
【golang学习总结】1golang概述及helloworld入门_第6张图片
其中,bin下的文件如下:
【golang学习总结】1golang概述及helloworld入门_第7张图片
配置环境变量:
go开发中需要配置的环境变量有:
【golang学习总结】1golang概述及helloworld入门_第8张图片
【golang学习总结】1golang概述及helloworld入门_第9张图片
【golang学习总结】1golang概述及helloworld入门_第10张图片
测试安装成功:**
【golang学习总结】1golang概述及helloworld入门_第11张图片

2.2 linux安装golang

下载对应的安装包并上传到linux服务器:【golang学习总结】1golang概述及helloworld入门_第12张图片
我是解压到下面的目录了:
在这里插入图片描述
配置环境变量:vim /etc/profile

export GOROOT=/opt/golang/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/gopath

让配置文件立即生效:

source /etc/profile

测试:
在这里插入图片描述

3 go-hello-world及开发注意事项

3.1 hello-world

在文件夹下编写hello.go文件:
【golang学习总结】1golang概述及helloworld入门_第13张图片
内容如下:

package main
import "fmt"
func main(){
     
	fmt.Println("hello,world")
}

说明:

  • go文件的后缀必须是go
  • package main,每个go文件必须都归属于某一个包
  • import fmt,引入fmt包

go build
编译:go build hello.go,在hello.go文件所在位置出现了编译后的文件hello.exe
运行:hello.exe

go run
编译+运行:go run hello.go

3.2 编译和运行说明

【golang学习总结】1golang概述及helloworld入门_第14张图片

  • go build生成的可执行文件可以直接再没有安装go环境的机器上运行;
  • go run 源代码。如果需要在其他机器上运行,则需要提前安装好go环境;
  • 编译之后,编译器会把运行依赖的库文件包含在exe可执行文件中,所以可执行文件变大了。

3.3 go开发注意事项

  • 语句后面不需要分号
  • 不能将多条语句放在同一行,否则报错:
    【golang学习总结】1golang概述及helloworld入门_第15张图片
  • 定义的变量或者 import 的包如果没有使用到, 代码不能编译通过。
    【golang学习总结】1golang概述及helloworld入门_第16张图片

3.4 go转义字符

  1. \t : 表示一个制表符, 通常使用它可以排版。
    【golang学习总结】1golang概述及helloworld入门_第17张图片
  2. \n : 换行符
  3. \\ : 一个\
  4. \" : 一个"
  5. \r : 一个回车 fmt.Println(“天龙八部雪山飞狐\r 张飞”);

4 golang基础语法

4.1 注释

和java语言类似,golang也提供了2类注释:行注释和块注释。

行注释:
【golang学习总结】1golang概述及helloworld入门_第18张图片
块注释:

/*
注释内容
*/

【golang学习总结】1golang概述及helloworld入门_第19张图片

4.2 代码规范

代码格式化

gofmt可以格式化代码
gofmt go文件名会将格式化后的内容输出到控制台,但是不会将格式化后的内容写入原文件。
【golang学习总结】1golang概述及helloworld入门_第20张图片
gofmt -w go文件名会将格式化后的内容写入到原文件。
在这里插入图片描述

你可能感兴趣的:(golang学习总结,go,golang)