Go 语言入门指南:基础语法和常用特性解析 | 青训营

235 阅读5分钟

Go 语言入门指南:基础语法和常用特性解析

Go 语言介绍

Go(又称 Golang)是Google的Robert Griesemer,Rob Pike及Ken Thompson开发的一种静态类型、编译型、并发型,并具有垃圾回收功能的编程语言,语法接近C,但有变量声明差异。Go的并行模型基于CSP,也有Pi运算的特征,1.8版本开始支持插件。

与C++相比,Go缺少枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了切片、并发、管道、垃圾回收、接口等特性。Go 2.0将支持泛型,不提供类型继承。Go内嵌了关联数组(哈希表或字典)。

基础语法与常用特性

学习编程语言当然得从 “hello world” 开始咯

main函数输出:hello world

package main

import "fmt"  

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

1. 注释

与大部分语言相同,分为两种注释:

  • 单行注释:以双斜杠 // 开头,只可单行中使用。
  • 多行注释:使用斜杠加星号 /* 作为起始,以星号加斜杠 */ 作为结束。可多行使用。
//单行注释

/*
多行注释
*/

2. 变量

在go中变量声明有两种方式,第一种标准变量声明是使用关键字 var 来创建变量,语法为var name type,其中name为变量名,type为变量的类型。第二种简短变量声明是使用 := 符号,编译器自动推断变量的类型。如果编译器无法推断出变量的类型,就需要显式地指定变量的类型。

var a = "b"

a := "b"

3. 常量

在Go中,常量的声明使用const关键字。常量的语法格式为:const identifier [type] = value,其中identifier为常量名,[type]为类型声明,value为常量的值。常量在程序中具有不可变性,即其值在程序运行期间不能被修改。常量的值必须在编译时确定,因此不能使用运行时才能确定的表达式或函数来初始化常量。

const pi = 3.14159
const userName string = "Alice"
const age = 25
const isTrue bool = true
...

4. 基本类型

Go语言是一种静态类型语言,它有一些基本的数据类型,包括:

布尔类型(Boolean):用于表示真或假,其类型为bool。

整数类型(Integer):用于表示整数,包括有符号和无符号类型。以下是几种常用的整数类型:

  1. int:有符号整数,具有平台相关的固定大小。
  2. int8:有符号8位整数(范围 -128 到 127)。
  3. int16:有符号16位整数(范围 -32768 到 32767)。
  4. int32:有符号32位整数(范围 -2147483648 到 2147483647)。
  5. int64:有符号64位整数(范围 -9223372036854775808 到 9223372036854775807)。
  6. uint:无符号整数,具有平台相关的固定大小。
  7. uint8:无符号8位整数(范围 0 到 255)。
  8. uint16:无符号16位整数(范围 0 到 65535)。
  9. uint32:无符号32位整数(范围 0 到 4294967295)。
  10. uint64:无符号64位整数(范围 0 到 18446744073709551615)。

浮点数类型(Float):用于表示带有小数点的数值,包括单精度和双精度类型。以下是几种常用的浮点数类型:

  1. float32:单精度浮点数,具有32位精度。
  2. float64:双精度浮点数,具有64位精度。

复数类型(Complex):用于表示复数,包括实数和虚数部分。以下是几种常用的复数类型:

  1. complex64:复数类型,具有64位精度。
  2. complex128:复数类型,具有128位精度。

字符串类型(String):用于表示文本数据,是字节的序列。

数组类型(Array):用于表示固定大小的数据集合,可以是一维或多维。

切片类型(Slice):是动态数组,可以动态增长或缩小。切片是引用类型,其底层是数组。

字典类型(Map):用于表示键值对的映射关系,其中键必须是唯一的。

结构体类型(Struct):用于表示一组相关数据的组合体,每个结构体可以包含不同的字段。

指针类型(Pointer):用于表示其他类型的内存地址,可以用来间接访问指向的数据。

除了以上基本数据类型,Go语言还提供了其他复合数据类型和自定义数据类型,如切片、数组、字典、结构体等。这些数据类型可以用来构建更复杂的数据结构和对象。

5. 控制流程

Go语言支持常见的控制流程语句,if条件判断语句,for循环语句和switch选择语句。

if条件判断语句示例:

a := 0
if a > 1 {
  //a>1等于true,执行这里
  fmt.Println("a")
} else {
  //否则,执行这里
  fmt.Println("b")
}

for循环语句示例:

for i := 0; i < 5; i++ {
    //被循环执行5次
    fmt.Println(i)
}

switch选择语句示例:

//选择num对应的值,没有则跳转到default执行
switch num {
    case 1:
        fmt.Println("1")
    case 2:
        fmt.Println("2")
    default:
        fmt.Println("0")
}

总结

本文简单讲述了Go语言的一些基础语法,帮助你快速入门。如要深入学习,可以去哔哩哔哩看一些更专业的老师的讲解视频。