Go语言基础语法

28 阅读2分钟

一、Go语言简介

1.1 Go语言特点

Go语言具有高性能、高并发、语法简单、丰富的标准库、完善的工具链、静态链接、快速编译、跨平台、垃圾回收等特点。

1.2 Go开发环境配置

1.2.1安装GOlang

在浏览器输入go.dev打开Golang的官网,然后点击download,按照提示就可以安装Golang 。

1.2.2安装IDE工具

Go的开发环境可以选择VSCode或者Golang,相关软件到对应官网进行下载。

二、Go语言基础语法

2.1变量

go语言是—门强类型语言,每—个变量都有它自己的变量类型。常见的变量类型包括字符串整数浮点型、布尔型等。

  • 未初始化的标准格式如下所示

var 变量名 变量类型

  • 初始化变量的标准格式:

var 变量名 = 表达式

  • 初始化变量的简短声明格式:

变量名 := 表达式

2.2 if-else

与c语言的写法类似,但是不用'( )'来包裹条件。

if 7%2 == 0 {
		fmt.Println("7 is even")
	} else {
		fmt.Println("7 is odd")
	}

2.3 循环

golang只有for一种循环,没有C语言当中的while,不写条件就是死循环。

for j := 7; j < 9; j++ {
		fmt.Println(j)
}

2.4 switch

GO中的switch默认执行完相应的case就跳出,不用像C语言需要加break语句。

a := 2
	switch a {
	case 1:
		fmt.Println("one")
	case 2:
		fmt.Println("two")
	case 3:
		fmt.Println("three")
	case 4, 5:
		fmt.Println("four or five")
	default:
		fmt.Println("other")
	}

2.5 数组

声明: var a [4]int 或者 a:=[4]int{1,2,3,4}

var a [5]int
a[4] = 100

2.6 切片

声明:make([]type,len,cap)

方法append:在slice后面追加元素

s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
s = append(s, "d")
s = append(s, "e", "f")

2.7 map

声明:变量名 := make(map[key]value)

对于访问未知的key,会返回对应value类型的0值

delete(map,keyName) 删除键值对

m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m)           // map[one:1 two:2]
r, ok := m["unknow"]
fmt.Println(r, ok) // 0 false
delete(m, "one")

2.8 字符串

字符串处理方法:

  • Contains("Hello","ll") //true

  • Count("Hello",l)//2

  • HasPrefix("Hello","He")//true

  • HasSuffix("Hello","lo")//true

  • Index("Hello","ll")//2

  • Join([]string("He","llo"),"-")//He-llo

  • Repeat("Hello",2)//HelloHello

  • Replace("Hello","l","L",1)//HeLlo

  • Split("a.b.c.d",".")//[a,b,c,d]

  • ToLower("Hello")//hello

  • ToUpper("Hello")//HELLO

2.9 range

使用range可以方便的遍历数组、切片和map中的元素

nums := []int{2, 3, 4}
sum := 0
for i, num := range nums {
	sum += num
	if num == 2 {
		fmt.Println("index:", i, "num:", num) // index: 0 num: 2
	}
}
fmt.Println(sum) // 9

m := map[string]string{"a": "A", "b": "B"}
for k, v := range m {
	fmt.Println(k, v) // b 8; a A
}