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):用于表示整数,包括有符号和无符号类型。以下是几种常用的整数类型:
- int:有符号整数,具有平台相关的固定大小。
- int8:有符号8位整数(范围 -128 到 127)。
- int16:有符号16位整数(范围 -32768 到 32767)。
- int32:有符号32位整数(范围 -2147483648 到 2147483647)。
- int64:有符号64位整数(范围 -9223372036854775808 到 9223372036854775807)。
- uint:无符号整数,具有平台相关的固定大小。
- uint8:无符号8位整数(范围 0 到 255)。
- uint16:无符号16位整数(范围 0 到 65535)。
- uint32:无符号32位整数(范围 0 到 4294967295)。
- uint64:无符号64位整数(范围 0 到 18446744073709551615)。
浮点数类型(Float):用于表示带有小数点的数值,包括单精度和双精度类型。以下是几种常用的浮点数类型:
- float32:单精度浮点数,具有32位精度。
- float64:双精度浮点数,具有64位精度。
复数类型(Complex):用于表示复数,包括实数和虚数部分。以下是几种常用的复数类型:
- complex64:复数类型,具有64位精度。
- 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语言的一些基础语法,帮助你快速入门。如要深入学习,可以去哔哩哔哩看一些更专业的老师的讲解视频。