标识符基本使用|学习笔记

简介: 快速学习标识符基本使用

开发者学堂课程【Go语言核心编程 - 基础语法、数组、切片、Map:标识符基本使用】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/625/detail/9540


标识符基本使用

内容介绍:

一、标识符的概念

二、标识符的命名规则

三、标识符的使用案例

一、标识符的概念

“标识”是指标识一个变量、函数或者包等,“符”指符号。

(1)Golang对各种变量、方法或函数等命名时使用的字符序列称为标识符。

(2)凡是自己可以起名字的地方都叫标识符。

如 var num int 指定义一个 int 型变量 num,var name string 指定义一个 string型变量 name,定义一个名字。


二、标识符的命名规则(记忆)

1.8由26个英文字母大小写、0-9、_组成

2.数字不可以开头

var num int √   var 2num int ×

1.Golang严格区分大小写

如:

var num int 与 var Num int,在Golang中,num与Num是两个不同的变量。

代码演示:

package main

import (

"fmt"

)

//演示Golang中认为num与Num是两个不同的变量

func main() {

var num int = 10

var Num int =20

fmt.Printf("num=%v Num=%v,num,Num")

}

编译器中不报错,且最终输出结果为num = 10 Num = 20

2.标识符不能含空格

代码演示:

package main

import (

"fmt"

)

//演示Golang中标识符不能含空格

func main() {

var abc int = 30

}

若写成 var ab c int = 30 ×,即使定义变量为ab c仍错,标识符不能含空格,编译器报错。

3.下划线“_”本身再Go中是一个特殊的标识符,称为空标识符,可以代替任何其他的标识符,但是它对应的值会被忽略(如:忽略某个返回值),所以仅能被用作占位符,不能作为标识符使用。

在string转基本数据类型一课中曾使用过“_”,表示忽略。若将下划线“_”当做标识符使用

代码演示:

package main

import (

"fmt"

)

//演示Golang中_是空标识符,仅用于占位

func main() {

var _ int = 40

fmt.Printf(_)

}

将下划线“_”用作标识符,编译器报错。

4.不能以系统保留关键字作为标识符,比如 break,if等等...

在 Go 中,为了简化代码编译过程中对代码的解析,其定义的保留关键字共25个(后面的课程详解),它们不可以用作标识符,否则会报错。

代码演示:

package main

import (

"fmt"

)

//演示 Golang 中系统保留关键字不能用作标识符

func main() {

var if int = 10

}

将系统保留关键字用作标识符,编译器报错。


三、标识符的使用案例

判断下列标识符是否可以使用:

①hello

②hello12

③1hello

×,标识符不可以数字开头

④h-b

×,标识符仅由26个英文字母大小写、数字0-9和下划线“_”组成,不包括“-”

⑤x h

×,标识符不能有空格

⑥h_4

⑦_ab

⑧int

√,int不属于保留关键字,属于预留标识符,但其易产生歧义,不要以标识符使用。

⑨float32    

 √,float32不属于保留关键字,属于预留标识符,但其易产生歧义,不要以标识符使用。

⑩_    

  ×,_只能用作占位符 

⑪Abc   

   √

代码演示:

package main

import (

"fmt"

)

func main() {

var int int = 90

fmt.Println(int)

}

语法无误,编译器不报错,输出结果为90,但实际开发过程中不使用这种表示方式,易产生歧义。

相关文章
|
3月前
|
存储 编解码 JavaScript
【简创AIGC】创建剪映草稿
CREATE_DRAFT接口用于创建剪映草稿,支持自定义视频宽高(如1080P、720P、竖屏等)。成功后返回草稿URL及使用指南,适用于多种视频编辑场景。
|
Linux 开发工具 Android开发
FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher
EasyPusher是一款国产RTSP直播录制推流客户端工具,支持Windows、Linux、Android及iOS等系统。尽管其GitHub仓库(安卓版:https://github.com/EasyDarwin/EasyPusher-Android)已多年未更新,但通过一系列改造,如升级SDK版本、迁移到AndroidX、指定本地NDK版本及更新Gradle版本等,仍可在最新Android Studio上运行。以下是针对Android Studio Dolphin版本的具体改造步骤。
260 3
FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher
|
缓存
vue2进阶篇:vue-router之路由的params参数
vue2进阶篇:vue-router之路由的params参数
207 0
|
安全 Java Maven
Maven重打包问题之Maven的打包机制对于ClassPath的顺序是如何解决的
Maven重打包问题之Maven的打包机制对于ClassPath的顺序是如何解决的
296 0
|
机器学习/深度学习 自然语言处理 算法
EfficientFormer | 苹果手机实时推理的Transformer模型,登顶轻量化Backbone之巅
EfficientFormer | 苹果手机实时推理的Transformer模型,登顶轻量化Backbone之巅
669 0
|
存储 SQL Prometheus
SLS数据加工完成Log到Metric的转换
简介: # 使用数据加工将Log转成Metric ## 云原生时代的可观察性 我们关注应用运行起来后的运行时数据,主要有Log、Trace和Metric 这3大类。 Log是离散的事件,Trace可以认为是带请求追踪的事件,Metric是带统计量的事件。
727 1
|
图形学
Unity实战之见缝插针
Unity实现见缝插针小游戏
Unity实战之见缝插针
|
JavaScript 前端开发
Upload-labs(文件上传靶场)——第一关
Upload-labs(文件上传靶场)——第一关
Upload-labs(文件上传靶场)——第一关
|
机器学习/深度学习 数据采集 编解码
OCR文字识别技术总结(二)
总结: 以上第一部分介绍我国OCR发展历程,从过程中可以发现,我国的光学字符识别研究相对国外起步较晚,但是发展十分迅速。从早期简单的单体识别发展到多种字体混合排列的多体识别,从中文印刷材料的识别发展到中英文混排印刷材料的双语言识别, 目前各个系统都可以支持简、繁体汉字的识别,同时支持中, 英,韩等多国文字的识别系统,对于简单版面可以进行效的定量分析,同时汉字识别率已经可以达到98%以上,以下第二部分将从不同字体展开对OCR技术描述。
1545 0
OCR文字识别技术总结(二)
|
前端开发 jenkins Java
jenkins持续集成从0入门到实战【二】安装插件和凭证配置
Jenkins的插件生态非常强大,能覆盖我们所必须用到的功能,同时凭证也是相当的灵活,一起来学习吧。
570 0
jenkins持续集成从0入门到实战【二】安装插件和凭证配置