教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang关键字和预定义标识符

Golang关键字和预定义标识符

发布时间:2022-12-12   编辑:jiaochengji.com
教程集为您提供Golang关键字和预定义标识符等资源,欢迎您收藏本站,我们将为您提供最新的Golang关键字和预定义标识符资源

  golang一共有25个关键字,我们只能按照规则使用。
  另外golang还有一些预定义标识符,除了按照规则使用外,我们还能当作普通的变量名、方法名等字段使用,但不建议这样做,避免混淆。
 

关键字

  • package:定义包名
  • import:引用包,golang目前是不支持循环引用的
        A import B,B 不能再引用A;
        A import B,B import C,C import A 也是不可以的。
  • struct:定义结构体
  • interface:定义接口
  • type:声明结构体,接口,类型和类型别名。
      声明一个类型,是作为一个新的类型使用,虽然本质上和原类型没有区别,但是无法直接当作原类型使用,而别名和原类型使用起来完全相同。
type A = int //int的别名
type B int	//新类型b

var a A = 1
var b B = 1

func GetSize(i int) {
	println(unsafe.Sizeof(i))
}
//64位机
GetSize(a)	//输出8
GetSize(b)	//无法通过编译,不能直接把B类型当作int使用
GetSize(int(b))	//输出8,可以强制转换
GetSize(*(*int)(unsafe.Pointer(&b)))//输出8,Pointer当然也是可以的
  • func:定义方法
  • return:返回当前方法
  • const:定义常量(有些语言定义常量不支持表达式,golang是可以的,但是表达式中的值也必须是常量)
  • var:定义变量
  • go:开启goroutine协程,后面直接跟方法调用
  • if,else:条件语句
      if可以if 表达式; 判断语句 ,比如下面段代码
//获取hash字典中的值
func GetValue(key string, dic map[string]string) string {
	if v, ok := dic[key]; ok {
		return v
	}
	return ""
}
  • map:哈希字典
  • chan:channel管道,主要用于不同协程直接通信,类似linux管道。
  • defer:在方法结束(包括异常)时调用,同一个方法内可以定义多个defer,调用顺序和定义相反。注意,defer后跟的表达式是定义时计算的,不是调用时计算的
func Defer() {
	i := 1
	defer println("first", i 1)
	i  = 1
	defer println("second", i)
}
//输出
//second 2 
//first 2
  • for:循环控制
  • select:和case配合使用,监听chan
  • switch: 选择控制,和case配合使用
  • case:switch和select中的单项
  • default:switch选项控制默认值
  • fallthrough:switch中继续执行下一个case内的指令
  • break:跳出当前循环、switch、select,switch和select默认break,如果不希望break,使用fallthrough;以上这些结构可以用标签命名,break 标签名,可以跳出多层结构。
  • continue:跳过循环语句中剩下的指令,直接进入下一次循环。continue也可以使用标签,忽略当前循环结构,直接继续执行标签指定的循环。
  • goto:无条件地转移到过程中指定的行,不推荐使用,可控制的小范围内使用。
  • range:用来迭代数组、切片、map、chan
     

预定义标识符

预定义标识符全部列出在源码的builtin包中,只有一个builtin.go文件,并且都有注释说明,大家可以自行阅读。
 
 
参考资料:

  1. 关键字:https://www.runoob.com/go/go-basic-syntax.html
  2. golang源码:https://github.com/golang/go

ps: 欢迎大家指出文中错误和不足,提出意见,以免误导。

到此这篇关于“Golang关键字和预定义标识符”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Python基本语法与变量的相关介绍
php标识符允许包含的字母字符是什么?
golang日志服务器_深扒GO日志 | (一)从Go语言的日志包说起
词法 – Javascript核心 – Javascript语法基础
golang 变量命名建议
PHP中trim函数怎么用?
go int64转string_Go语言微服务架构实战:第七节 Protobuf协议语法及原理
Go语言基础(一)
详解Python标识符命名规范
拓展学习-golang的基础语法和常用开发工具

[关闭]
~ ~