Go语言入门 | 青训营笔记

66 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

Go的核心特性

类型系统

  • 简单类型
  • 复合类型
  • 命名类型
  • 未命名类型
  • 静态类型
  • 动态类型
  • 底层类型
  • 接口类型
  • 具体类型
  • 类型字面量

接口

并发

反射

陷阱和习惯用法


基础知识

Go语言的特性

  • 语言组织

  • 类型系统

  • 抽象特性

  • 元编程特性

  • 跨平台

  • 语言软实力特性

Go程序

package main

import "fmt"

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

}

1.UTF-8编码

2.main函数所在的包名必须是main

go build hello.go

./hello

Go的词法单元

token

编译器编译源文件程序第一步就是将源程序分隔成一个个独立的token。

go的标识符

  • 开头必须是字符或下划线

go的关键字(25)

breakdefaultfunc
caseinterfaceselect
defergomap
structchanelse
gotopackgeswitch
constfallthroughif
rangetypecontinue
forimportreturn
var

go内置数据类型标识符(20)

整型:

byte int int8 int16 int32 int64

uint uint8 uint16 uint32 uint64 uintptr

浮点型:

float32 floar64

复数型:

complex64 complex128

字符和字符串:

string rune

接口型:

error

布尔:

bool

go的内置函数(15)

make new len cap append copy delect panic recove

close complex real image print println

内置函数也是高级语言的一种语法糖

go的常量标识符

true false iota(连续枚举的声明) nil

空白标识符

_

Operrators

+	&	+=	&=	&&	==	!=	( )
-	|	-=	|=	||	<	<=	[ ]
*	^	*=	^=	<-	>	>=	{ }
/	<<	/=	<<=	++	=	:=	,	;
%	>>	%=	>>= --	!	...		.		:
&^	&^=

变量和常量

变量

显示完全声明:

var varName dataType [ = value]

var number int = 521

短类型声明:

varName := value :=只能在函数内,Go编译器自动进行数据类型判断

a,b := 1,"hello"