在上一章的学习中,我们知道了go语言开发环境的搭建过程,这一章作为一个入门的指南手册,对go语言有一个比较清楚的了解

通过本章学习,可以知道如下知识点:

  • 会编写第一个go程序
  • 知道go语言的基本语法
  • 知道go程序的执行过程

1、什么是go语言?

Go 语言又称 Golang,由 Google 公司于 2009 年发布的,和 Java 类似,它是一门静态的、强类型的、编译型的编程语言, Go 语言支持 Windows、Linux 等多个平台,也可以直接在 Android 和 iOS 等移动端执行,也能够支持并发,所以Go 语言在云计算、微服务、大数据、区块链、物联网、人工智能等领域都有广泛的应用

静态语言和动态语言区别:

  • 动态语言(弱类型语言)是运行时才确定数据类型的语言,比如Php、Asp、JavaScript、Python、Perl等等
  • 静态语言(强类型语言)是编译时变量的数据类型就可以确定的语言,比如Java、C、C++、C#、Go等。

编译型语言和解释型语言区别:

  • 编译型编程语言:使用专门的编译器,将高级编程语言一次性编译成可以被平台执行的机器码,并包装成平台所能识别的可执行程序,比如C、C++、Golang
  • 解释型编程语言:没有构建步骤,而是使用专门的解释器对源程序逐行解释成特定平台的机器码。解释型语言曾经被认为比编译型语言慢得多。但是,随着即时 (JIT) 编译的发展,性能差距正在缩小,比如JavaScript、Python等等

2、go语言的背景

go语言是Google公司推出的一门编程语言,其核心成员是3位大牛:
在这里插入图片描述
然后,为什么要开发出golang语言?

  • 随着软件规模的不断扩大,开发者在开发过程遇到很多问题,c/c++程序虽然运行很快,但是编译是比较慢的,如果是一个大型项目是需要不少时间在编译上的,同时存在一系列的内存泄漏需要处理。
  • 一个是软件系统的复杂程度越来越高,开发和维护成本越来越高,所以急需一个足够简洁的编程语言提高效率
  • 计算机硬件发展很快,性能提高很快。但是主流的编程语言发展明显落后于硬件,不能很好利用多核多cpu的优势提升软件系统性能。

3、Go语言特点

Go语言既有静态语言的安全和性能,又达到了动态语言开发维护的高效率,go语言既有C静态语言程序的运行速度,又能达到python动态语言的快速开发。下面总结一些go语言的特性:

  1. 从C语言继承了很多理念,包括表达式语法、控制结构、基础数据类型、调用参数传值、指针等等,也保留了和c语言一样的编译运行方式
func t(num *int) {
*num=20
}
  1. 有包的概念,用于组织程序结构,go语言的一个文件都要归属于对应的package,不能单独存在,而且必须要有一个main命名的package
  2. 有垃圾回收机制,内存自动回收,不需要开发人员管理
  3. 支持并发,基于CPS并发模型(Communicating Sequential Processes)实现,有轻量级线程goroutine,可支持大并发处理,高效利用多核
  4. 有管道通信机制,通过go语言的channel,可以实现不同goroute之间的通信
  5. 函数可以返回多个值,而且必须有一个main函数
func getCount(n1 int,n2 int){
	sum := n1 + n2;
	sub := n1 - n2;
	return sum,sub;
}
func

4、go语言执行流程

go run
go build sample.go

两种执行流程的区别

go run

5、go语言转义字符

常用的转义字符:

\t\n\\\\""\r
fmt.PrintLn("hello\tworld")

6、go语言代码注释

golang的代码注释其实和java语言也是一样的,也是有行注释和块注释

// 注释内容
/*
注释内容
*/

注意:

  • 注释的行注释和块注释,注释的内容是不会被go编辑器执行的
  • 块注释里不允许有块注释的嵌套使用

7、学会看Golang相关文档

官方网站:https://go.dev/
在这里插入图片描述

Golang标准库中文文档:https://studygolang.com/pkgdoc

在这里插入图片描述

8、第一个go程序

下面编写一个hello world程序,对整个执行流程和注意事项有所了解

开发环境

  • Go 1.15.8
  • GoLand 2021
hello world
package main

import "fmt"

func main()  {
	fmt.Printf("hello")
}

go语言和c语言一样,都是编译型语言,所以go程序的运行也是需要先编译,go程序在window系统是编译为一个文件命名的exe二进制可执行文件

go build sample.gosample.exe./samplefunc
funcfunc