Go 学习笔记(4):基本要素

本文深入探讨了Go语言中的标识符和关键字概念,包括变量名、函数名、类型名、包名的命名规则,以及Go语言的预定义标识符和关键字列表。同时,文章还介绍了Go程序的基本结构和执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标识符

标识符用来表示 Go 中的变量名、函数名、类型名、包名等,以字母或 _ 开头,后面跟任意数量的字母、数字或 _,区分大小写。

_ 是一个特殊的标识符:空白标识符,同样可以用于变量声明或赋值,但任何赋予此标识符的值会被丢弃,不能在后续使用,常用来丢弃接收值。

为什么会有标识符呢?因为我们要操作的数据存放在内存中,如果直接操作内存地址,可读性会非常差,所以用标识符来表示相应的内存地址,这也就是我们常说的变量。

关键字

关键字是 Go 预先定义好的,有特殊含义的标识符。关键字不能用于自定义名字,只能在特定语法结构中使用。

break	default	func	interface	select
case	defer	go	map	struct
chan	else	goto	package	switch
const	fallthrough	if	range	type
continue	for	import	return	var
复制代码

预定义标识符

预定义标识符并不是关键字,可以使用它们作为变量,但为了不引起混乱,不建议这么做。

内建常量: true false iota nil

内建类型: int int8 int16 int32 int64
          uint uint8 uint16 uint32 uint64 uintptr
          float32 float64 complex128 complex64
          bool byte rune string error

内建函数: make len cap new append copy close delete
          complex real imag
          panic recover
复制代码

注释

  • 单行注释://
  • 多行注释:/* */

程序的一般结构

Go 程序的结构并没有强制要求,但为了更好的阅读体验,总体设计思路如下:

  • import 包之后,定义或声明常量、变量和类型。
  • 如果存在 init 函数的话,则对该函数进行定义(这是一个特殊的函数,每个含有该函数的包都会首先执行这个函数)。
  • 如果当前包是 main 包,则定义 main 函数。
  • 定义其余的函数,首先是类型的方法,接着是按照 main 函数中先后调用的顺序来定义相关函数,如果有很多函数,则可以按照字母顺序来进行排序。

Go 程序的执行顺序如下:

  1. 按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程
  2. 如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。
  3. 然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。
  4. 在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。
package main

import "fmt"

func main() {
	fmt.Println("hello, world")
}
复制代码

#3# 声明包

必须在源文件中非注释的第一行指明这个文件属于哪个包,每个 Go 文件都属于且仅属于一个包,一个包可以由许多以 .go 为扩展名的源文件组成。

导入包

  • 如果包名以 / 开头(包括 Windows 下),会在系统的绝对路径中查找包
  • 如果包名不是以 ./ 开头,会在全局文件进行查找
  • 如果包名以 ./ 开头,则会在相对目录中查找

导入多个包;

import "fmt"
import "os"
复制代码

或者

import "fmt"; import "os"
复制代码

或者

import (
   "fmt"
   "os"
)
复制代码

或者

import ("fmt"; "os")
复制代码

如果导入了一个包却没有使用它,则会在构建程序时引发错误,这正是遵循了 Go 的格言:“没有不必要的代码!“。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值