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

96 阅读4分钟

一、Go语言的数据类型

Go语言中的数据类型可以大致分为四个部分:

  • 布尔类型:也就是我们熟知的1和0(或者True和False)
  • 数字类型:包括整型int,浮点型float
  • 字符串类型:一串固定长度的字符连接起来的字符序列,char类型
  • 其他类型:包括指针类型,数组类型,结构体类型,函数类型等

1.1 定义变量的方法

声明变量的一般形式是使用var关键字,例如var a int = 16,这段代码的含义是定义一个整型变量a,并为a赋值为16。

当然,定义变量是不一定要为变量赋值,未赋值情况下默认数值类型的变量值为0,布尔类型的变量值为false,字符串类型的变量为空字符串。

和C语言不同,Go语言定义变量时可以不指定变量类型,编译器可以通过变量的初始值来判断变量类型,例如: var d = true,此时默认d的类型为布尔类型。

1.2 多变量声明

可以同时声明多个类型相同的变量。

var a, b int
var x, y int = 10

1.3 :=符号

其实声明变量有时候也可以不用那么麻烦,直接使用:=符号就可以快速完成声明变量并赋值的操作。 g, h := 123,"Hello"解释为定义int类型的g,并赋值123;定义字符串类型的h,并赋值为Hello。

二、 指针

Go语言中的取地址符为&,放在一个变量前使用就会返回相应变量的内存地址。指针就是用于存放一个对象的内存地址。

2.1 指针的声明与初始化

指针声明代码示例如下:var ip *int 表示指向整型的指针ip; var fp *float32表示指向浮点型的指针fp。

指针的初始化就是取出相对应的变量地址对指针进行赋值,代码示例如下:

var a int =20
var ip *int
ip = &a

2.2 空指针

当一个指针被定义后没有指向任何变量时,它的值为nil,意义与C语言中的null一样。

三、数组

数组是具有相同唯一类型的一组带编号且长度固定的数据序列,Go语言中数据的含义与C语言一致。

3.1 数组的声明与初始化

数组声明示例如下: var arr[10] float32,表示定义一个浮点类型的有10个单位大小的数组空间。

数组的初始化有很多方式:

  • 直接初始化:var arr = [5]int{1,2,3,4,5}
  • 快速初始化:arr := [5]int{1,2,3,4,5}
  • 数组长度不确定,系统根据数组元素个数推断数组长度:var arr = [...]int{1,2,3,4,5}
  • 指定数组下标进行初始化:arr := [5]int{1:2,3:5}

3.2 注意事项

  • 初始化数组中{}中元素的个数不能大于[ ]中的数字。
  • 如果采取上面第三种定义方法,系统将根据元素个数自动设置数组大小,而不是随机确定

四、小结

在学习Go语言的过程中,我对go语言也有了更多的认识。

首先,Go语言的基础语法相对简单,容易上手。与其他编程语言相比,Go的语法特点更加清晰明了,易于理解。例如,它的语法规范明确,类型系统简单易用,对于初学者来说比较容易掌握。

其次,Go语言的特性和设计理念非常吸引人。Go强调简洁、高效和并发,对于解决一些常见的问题有很好的表现。例如,Go的并发模型和标准库中的goroutine和channel,使得编写并发程序变得相对简单。此外,Go还具有良好的性能和高效的内存管理,使其在系统编程和Web开发等领域表现出色。

第三,Go语言的工具链也给我留下了深刻的印象。无论是编译、测试还是文档生成,Go的工具都非常完善,为开发者提供了便利。这些工具不仅提高了开发效率,也使得代码管理和维护更加容易。

在学习过程中,我发现Go语言对于良好的编程习惯和代码组织能力有一定的要求。例如,对于代码的命名规范和文件组织结构,Go都有明确的规定。这使得编写高质量的代码变得更加重要,同时也让代码更加易于阅读和维护。