Go语言基础语法和注意事项上 | 青训营
写在前面
本文内容主要来自于我学习尚硅谷的Go语言教程的心得体会,而由于我本身有一定其它语言基础,所以编程语言中一些通用的语法要求和特性不会在本文列出。本文只总结了我认为的Go语言中一些独有的或重要的注意点以供我复习使用,即本文不会囊括所有Go语言的细节
一.Go语言注意事项和常用特性
- Go源文件以“go”为扩展名
-
Go语言严格区分大小写。变量名和函数名首字母大写,则表示可以被其他包调用;如果首字母为小写,则不可被其他包调用。这有助于维护代码的封装性和可读性。
-
Go中每个语句后不需要分号,因为Go语言会自动在每行后加分号,提高了代码的简洁性和可读性。
4.Go在编译时会检测未使用的变量或引入的包,这有助于提醒开发者去除无用的代码,以减少代码的冗余。
- Go中有多种变量定义方式,其中比较特别的是类型推导,该方式可以根据变量的值自动判定变量类型,从而减少了冗余的类型声明,使代码更加简洁。
6.命名规范
(1)缩略词全大写,但当其位于变量开头且不需要导出时,使用全小写。例如使用ServeHTTP而不是ServeHttp,使用XMLHTTPRequest 或者xmHTTPRequest
(2)变量距离其被使用的地方越远,则需要携带越多的上下文信息。
(3)全局变量在其名字中需要更多的上下文信息,使得在不同地方可以轻易辨认出其含义
7.Go语言提供了支持基准性能测试的 benchmark工具
go test -bench=. -benchmem
有助于开发者评估代码的性能表现。
8.Go中的大括号在if语句或函数的第一行后必须紧跟着,这是Go语言的语法要求,有助于代码的一致性和可读性。
二.Go语言数据类型使用细节
1.字符类型使用细节
(1)Go中允许使用转移字符''来将其后的字符转为特殊字符型常量。例如var a char = '\n'
.其中'\n'表示换行符
(2)在Go中,字符有对应的utf-8码值,本质上是一个整数,可以进行运算,直接输出会是该字符对应的utf-8码值
2.布尔类型使用细节
不可以用0或非0的整数代替false和true
3.字符串类型使用细节
(1)在Go中字符串是不可变的,一旦赋值不可修改
(2)字符串有两种表示形式。双引号会识别转义字符;反引号会以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果
三.Go语言基本数据类型的转换
1.介绍
Go语言中数据类型不能自动转换,需要显示转换。基本语法为T(v),表达式中T为数据类型,v为需要转换数据类型的变量
2.类型转换细节说明
(1)Go中,数据类型的转换可以是从表示范围小->表示范围大,也可以表示范围大->表示范围小
(2)go语言中数据类型的转换不会导致变量的数据类型发生改变,被转换的是变量存储的数据(值)
(3)若将int64转成int8,编译时不会报错,但是转换的结果按溢出处理
(4)在将String类型转换成基本数据类型时,要注意String类型能够被正确转换。例如:可以把string类型"9527"转成整数,但如果将string类型“helloworld”转换成整数会被转成0
四.循环、分支与流程控制
1.switch穿透-fallthrough,如果在case语句后增加fallthrough,则会继续执行下一个case,叫做switch穿透
2.Go提供for-range来遍历字符串和数组,for-range在遍历字符串时,是按照字符来遍历的,而不是按照字节。
3.如果字符串含有中文,那么传统的遍历字符串方式会出现乱码,因为传统方法是按照字节遍历,而汉字在utf8编码对应三个字节。而for-range不会出现这个问题还有一种方式是把字符串转换成切片来遍历
4.break默认跳出最近的for循环,break后面可以指定标签,跳出标签对应的for循环(continue同理)
小结
Go语言中有很多与其他编程语言不同的细节与差异,这已经体现在了Go的基础语法部分,也正是因为这些不同点使得Go语言能够从众多新兴语言中脱颖而出,我相信在未来,Go语言会更加完善和强大
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbbfka
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13