Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

这篇具有很好参考价值的文章主要介绍了Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

一、Go的关键字列表和分类

介绍

关键字(Keywords)是编程语言中预定义的一组特殊词汇,每个关键字都有一个明确的功能和用途。在Go编程语言中,关键字起着构建程序逻辑框架的作用,是程序语义和结构的基础。本篇文章旨在深入探究关键字在Go中的定位与应用,以理解其在程序设计中的重要性。Go语言有25个预定义的关键字,这些关键字用于各种特定目的,从声明变量和函数,到流程控制和并发编程。

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

关键字在Go中的定位

语言的基石

关键字在任何编程语言中都是基础构成元素,Go语言也不例外。它们是用于描述程序逻辑、定义数据结构、和处理错误等多方面任务的工具。

简洁与高效

Go语言以其简洁性和高效性而受到广泛欢迎,这在很大程度上得益于其有限但高度优化的一组关键字。Go仅有25个关键字,相较于其他编程语言,这个数字相对较小,但每一个关键字都有明确和重要的用途。

可扩展性和灵活性

虽然关键字本身是固定的,但Go提供了一系列复合语句和操作符,以实现高度的可扩展性和灵活性。例如,你可以使用 if-else,for 和 switch 关键字创建复杂的逻辑结构。

关键字分类

声明各种代码元素

关键字 描述
const 用于声明一个或多个常量
func 用于定义新的函数
import 用于导入外部包
package 用于声明包名,通常位于每个Go源文件的第一行
type 用于声明自定义类型,如结构体、接口、别名等
var 用于声明一个或多个变量

组合类型的字面表示

关键字 描述
chan 用于声明一个新的通道(channel)
interface 用于定义一个新的接口
map 用于声明一个新的映射(键-值存储)
struct 用于定义一个新的结构体

基本流程控制语法

关键字 描述
break 用于中断当前循环或 switch 语句
case switch 语句中的一个分支
continue 跳过当前循环迭代的剩余语句,进入下一次迭代
default switch 语句中的默认分支
else if 语句的否定分支
fallthrough 用于 switch 语句中,使控制流继续执行下一个 case
for 用于循环
goto 跳转到标签(不推荐使用)
if 条件语句
range 用于 for 循环,遍历数组、切片、映射或通道
return 用于从函数返回值
select 用于多路通道选择
switch 用于多分支选择语句

协程和延迟函数调用

关键字 描述
defer 用于延迟执行函数,通常用于清理资源
go 用于启动一个新的 goroutine,实现并发

二、Go的关键字全代码示例

关键字全代码示例

关键字 代码示例 代码作用
const const PI = 3.14159 定义常量 PI
func func add(x, y int) int { return x + y } 定义名为 add 的函数
import import "fmt" 导入 fmt
package package main 定义包名为 main
type type Point struct {x, y int} 定义一个名为 Point 的结构体
var var name string = "John" 定义一个名为 name 的变量
chan ch := make(chan int) 创建一个新的整数类型的通道
interface type Writer interface { Write([]byte) error } 定义一个名为 Writer 的接口
map m := map[string]int{"one": 1} 创建一个键为字符串、值为整数的映射
struct type Circle struct { Radius float64 } 定义一个名为 Circle 的结构体
break if x > 0 { break } 如果 x > 0,则跳出循环
case case "apple": fmt.Println("It's an apple") switch 语句中,定义一个 case
continue if x < 0 { continue } 如果 x < 0,则跳过当前循环迭代
default default: fmt.Println("It's default") switch 语句中,定义一个默认 case
else if x > 0 { /*...*/ } else { /*...*/ } if 语句的否定分支
fallthrough case 1: fallthrough switch 语句中,强制执行下一个 case
for for i := 0; i < 10; i++ { /*...*/ } 循环10次
goto goto myLabel 跳转到 myLabel 标签(不推荐)
if if x > 0 { /*...*/ } 条件为 x > 0 时,执行某个操作
range for k, v := range m { /*...*/ } 遍历映射 m
return return x + y 从函数中返回 x + y
select select { case <-ch: /*...*/} 多路通道选择
switch switch x { case 1: /*...*/ } 多分支选择
defer defer fmt.Println("bye") 延迟执行 fmt.Println("bye") 直到函数退出
go go doSomething() 在新的 goroutine 中执行 doSomething() 函数

三、Go的标识符定义

标识符是编程语言中用于识别各种编程元素(如变量、函数、类型等)的名字。在Go语言中,标识符有一组特定的规则和约定。下面将详细解析这些规则和特性。

基础定义

一个标识符是一个以Unicode字母或者下划线(_)开头,并且完全由Unicode字母和Unicode数字组成的单词。

  • Unicode字母:这些是定义在Unicode标准8.0中的Lu、Ll、Lt、Lm和Lo分类中的字符。
  • Unicode数字:这些是定义在Unicode标准8.0中的Nd数字字符分类中的字符。

特殊规定

关键字与标识符

Go的关键字不能被用作标识符。这是一个重要的限制,以避免命名冲突和语法混淆。

空标识符

标识符 _ 是一个特殊字符,它被称为空标识符。它用于忽略函数的某个返回值或强制性声明一个变量,但不使用。

作用域和可见性

  • 导出标识符:一个由Unicode大写字母开头的标识符称为导出标识符,也可以被理解为公开(public)。
  • 非导出标识符:其它(即非Unicode大写字母开头的)标识符称为非导出标识符,也可以被理解为私有(private)。

注意:截至目前(Go 1.20),东方字符都被视为非导出字符。

合法标识符示例

导出标识符

  • Player_9
  • DoSomething
  • VERSION
  • Ĝo
  • Π

非导出标识符

  • _
  • _status
  • memStat
  • book
  • π
  • 一个类型
  • 변수
  • エラー

非法标识符

  • 由Unicode数字开头:123, 3apples
  • 含有不符合要求的Unicode字符:a.b, *ptr, $name, a@b.c
  • 使用关键字:type, range

四、Go的标识符举例

在Go语言中,标识符用于命名各种类型的编程元素,如变量、常量、函数等。本文将通过表格的形式,提供不同类型标识符的代码示例和相关解释。

表格:Go标识符类型、示例与解释

标识符类型 标识符示例 解释
变量 myVariable 用于存储数据值。
常量 MAX_COUNT 用于存储不会改变的数据值。
函数 CalculateSum 包含执行特定任务的代码块。
结构体 Person 用于定义包含多个字段(变量)的复合数据类型。
接口 Writer 定义了方法集,任何实现了这些方法的类型都被认为实现了该接口。
切片 mySlice 动态数组,可以在运行时更改大小。
Map colorMap 键值对的集合。
Channel msgChannel 用于在Goroutine之间发送和接收数据。
fmt 用于组织和复用代码,通常包含函数、变量、常量等。
别名 type MyInt int 用于给现有类型创建一个新名字。
枚举 enum Status 一组命名的整数常量。
Goroutine go doSomething() 并发执行的函数。
标签 LOOP: 用于控制流语句,如breakcontinue
空标识符 _ 用于忽略不需要的值。
导出标识符 PublicVar 在其他包中可见和可用的标识符。
非导出标识符 privateVar 仅在定义它的包内可见和可用的标识符。

五、Go关键词和标识符代码实战

在本部分中,我们将通过一个综合性的代码实战案例来探讨Go中所有关键词和标识符的实际应用。我们将创建一个简单的计算器程序,该程序将实现加、减、乘、除四种操作。

综合案例:简单计算器

package main // package关键词用于定义包名

import "fmt" // import关键词用于引入外部包

// 全局变量声明
var result int // var关键词用于声明变量

const maxInput = 100 // const关键词用于声明常量

// 自定义类型声明
type Calculator func(int, int) int // type关键词用于声明自定义类型

// 主函数
func main() { // func关键词用于声明函数
    var operator string // 局部变量声明
    var num1, num2 int

    for { // for关键词用于循环
        fmt.Println("请输入操作符 (+, -, *, /, exit):")
        fmt.Scanln(&operator)

        if operator == "exit" { // if关键词用于条件判断
            fmt.Println("程序退出。")
            break // break关键词用于跳出循环
        }

        fmt.Println("请输入两个整数:")
        fmt.Scanln(&num1, &num2)

        switch operator { // switch关键词用于多条件判断
        case "+":
            result = calculate(add, num1, num2)
        case "-":
            result = calculate(subtract, num1, num2)
        case "*":
            result = calculate(multiply, num1, num2)
        case "/":
            if num2 == 0 { // else关键词用于条件判断
                fmt.Println("除数不能为0")
                continue // continue关键词用于跳过本次循环
            }
            result = calculate(divide, num1, num2)
        default: // default关键词用于多条件默认选项
            fmt.Println("无效的操作符")
            continue
        }

        fmt.Printf("结果为: %d\n", result)
    }
}

// 函数声明与定义
func calculate(calc Calculator, num1, num2 int) int { 
    return calc(num1, num2)
}

// 加法
func add(a, b int) int {
    return a + b
}

// 减法
func subtract(a, b int) int {
    return a - b
}

// 乘法
func multiply(a, b int) int {
    return a * b
}

// 除法
func divide(a, b int) int {
    return a / b
}

关键词和标识符解析

  • package:定义了当前代码所属的包,这里是main
  • import:用于引入外部库,这里我们引入了fmt库。
  • var:全局和局部变量声明。
  • const:用于定义常量,这里定义了一个名为maxInput的常量。
  • type:用于声明自定义类型,这里定义了一个Calculator函数类型。
  • func:用于声明函数,这里声明了多个函数。
  • for:用于循环,这里是一个无限循环。
  • ifelse:用于条件判断。
  • switchcasedefault:用于多条件判断。
  • break:用于跳出循环。
  • continue:用于跳过当前循环迭代。

Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!

关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
如有帮助,请多关注
个人微信公众号:【TechLeadCloud】分享AI与云服务研发的全维度知识,谈谈我作为TechLead对技术的独特洞察。
TeahLead KrisChang,10+年的互联网和人工智能从业经验,10年+技术和业务团队管理经验,同济软件工程本科,复旦工程管理硕士,阿里云认证云服务资深架构师,上亿营收AI产品业务负责人。文章来源地址https://www.toymoban.com/news/detail-695254.html

到了这里,关于Go,从命名开始!Go的关键字和标识符全列表手册和代码示例!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【面试题精讲】标识符和关键字的区别是什么

    “ 有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准 https://blog.zysicyj.top ” 首发博客地址 [1] 面试题手册 [2] 系列文章地址 [3] 标识符 :在编程语言中,标识符是用来表示变量、函数、类等命名实体的名称。它由一系列字符组成,可以包含字母

    2024年02月07日
    浏览(51)
  • Java程序设计入门教程--标识符和关键字

    目录 标识符 标识符的约定 1. 定义 用来 标识类名,变量名,方法名,类型名,数组名,文件名的有效序列称为标识符。简单地说,标识符就是一个名字 。 2. 标识符命名规则 (1)大小写有别,例如 a 和 A 是两个变量, Boy 和 boy 是不同的标识符。 (2)长度任意。 (3)可以

    2024年02月07日
    浏览(47)
  • 【Java探索之旅】我与Java的初相识(完):注释,标识符,关键字

    🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天! 在Java编程中,注释、标识符和都是非常重要的概念。注释可以帮助我们更好地理解和维护代码,而规范的标识符命名和避免冲突可以提高代码的可读性和可维护性。本文将介

    2024年02月04日
    浏览(110)
  • javaSE___语法基础(关键字、标识符、数据类型、字符、字符串、运算符)

    一、的概述和使用 A:什么是 被Java语言赋予特定含义的单词 B:的特点 组成的字母全部小写 C:常见 public static void class等 D:的注意事项 goto和const作为保留字存在,目前并不使用,类似Editplus这样的高级记事本,针对有特殊的颜色标记,非

    2024年02月09日
    浏览(46)
  • 【Java基础教程】(三)程序概念篇 · 上:探索Java编程基础,注释、标识符、关键字、数据类型~

    掌握Java中标识符的定义; 掌握Java中数据类型的划分以及基本数据类型的使用原则; 掌握Java运算符的使用; 在编写程序时,为了提高程序的可维护性,我们可以在代码中添加注释。 注释是一种说明性的文字,不会被编译器编译执行 。 Java提供了三种注释形式: // :单行注

    2024年02月12日
    浏览(160)
  • 第02章_变量与运算符(关键字,标识符,变量,基本数据类型,进制,运算符,字符集)

    定义: 被Java语言赋予了特殊含义,用做专门用途的字符串(或单词) HelloWorld案例中,出现的有 class 、 public 、 static 、 void 等,这些单词已经被Java定义好了。 特点:全部都是 小写字母 。 比较多,不需要死记硬背,学到哪里记到哪里即可。 官方地址:

    2024年01月22日
    浏览(57)
  • C# 标识符命名规则和约定

    目录 命名规则 命名约定 C# 编码约定 命名约定 帕斯卡拼写法 驼峰式大小写 如何使用模式匹配以及 is 和 as 运算符安全地进行强制转换 标识符是分配给类型(类、接口、结构、记录、委托或枚举)、成员、变量或命名空间的名称。 有效标识符必须遵循以下规则: 标识符必须

    2024年02月12日
    浏览(54)
  • 【JAVA】数据类型,类型转换与提升,运算符,标识符命名规则

    🍉内容专 栏:【JAVA从0到入门】 🍉本文脉络:数据类型,类型转换与提升,运算符,标识符命名规则 🍉本文作者:Melon_西西 🍉发布时间 :2023.7.12 目录  1. 字面常量 2. 数据类型:四类八种  3.类型转换 3.1 自动类型转换(隐式) 自动类型转换: 3.2 强制类型转换(显式) 强制类

    2024年02月15日
    浏览(47)
  • go学习-指针 标识符

    1.指针 (1).基本介绍 1)基本数据类型,变量存的值,也叫值类型 2)获取变量的地址用,比如 var num int ,获取num的地址:num 3)指针类型,变量存的是一个地址,这个地址指向的空间存的才是真正值,比如: var ptr *int =num 4)获取指针类型所指的值,使用*,比如:var *ptr int,使用

    2024年02月11日
    浏览(53)
  • VSIX:C#项目 重命名所有标识符(Visual Studio扩展开发)

            出于某种目的(合法的,真的合法的,合同上明确指出可以这样做),我准备了一个重命名所有标识符的VS扩展,用来把一个C#库改头换面,在简单的测试项目上工作很满意,所有标识符都被准确替换。我还尝试用在C++项目上,问题就比较多了,因为VS并不能准确识别

    2024年02月05日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包