初识GO语言|青训营笔记

66 阅读2分钟

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

相比我熟悉的C++语言而言,GO语言的语法结构有些类似的地方,但是它的语法结构是较为简单的,同时它的并发性的优势就是它最大的特点,下面具体介绍GO语言的学习入门。

首先需要做的就是准备号GO语言的开发环境,而IDE的选择有VSCode与GoLand两种,VSCode需要另外安装GO的扩展插件。

基础语法

对于数据类型而言,与大多数编译语言都相同,都是有整形、浮点型、字符串、布尔等一些基本类型。而在变量的定义上与许多的编程语言有不同。

var a int = 5
var b,c int = 3,4  //一行多个变量赋值
var d="Go"         //自动判断变量类型
e :=4
const f int = 5

在定义变量并初始化时变量的数据类型会写在变量名的后面,或者可以省去数据类型,因为Go语言会自动判断所赋值的数据类型,又或更为简便的写法a:=4来初始化赋值,如果是常量则将var换成const。

数组、切片、Map

var a[4]int
a:=[4]int{1,2,3,4}

这是数组的两种初始化的方式,访问数组与C++类似进行索引访问。

a :=make([]string,0,6)   //长度为0,阈值为6
a[0]='a'
a=a.append(a,'b')
fmt.Println(a[:1])   //a

这是切边的初始化以及赋值输出等操作,切片就相当于一个不定长的数组,长度为当前的真实长度,当长度超过阈值时则会进行扩容,所以切面比数组的使用频率更高。与数组相同它也可以与数组一样赋值或进行append()操作来更新切片,与Python有些类似也能进行[ : ]进行索引输出

a := map[string]int{"one" : 1, "two" : 2}

这是对Map的初始化操作,几乎与C++的哈希表与Python的字典类型相同,都是键值对的形式。

函数、条件语句、循环

func add2(a, b int) int {
	return a + b
}

这是一个函数的定义,参数类型都为int,返回类型也为int,条件语句的结构与C++类似,而在switch语句中没有break语句进行中断,但也不会执行剩下的语句;而循环语句只有for循环语句与C++的for循环类似。

for range语句

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

for range语句可以同时得出一个数组的下标以及其对应的值,这样的方法同样适用于切片与Map。

Hello World程序

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

一个Go程序的完整框架,运行后会输出hello world