GO语言学习日记(四)声明
来源:互联网 发布:工行个人网络抵押贷款 编辑:程序博客网 时间:2024/05/18 02:16
程序组成除了语言自身的标识符以外,一般都会使用大量的自定标识符,因此使用自定义标识符的时候就需要声明语句实现。
Go语言声明需要用到的几个关键字:
变量的声明:var,var的变量声明的类型可以是Go语言内置的各种基本数据类型、复合数据类型、甚至函数、方法、接口以至于自定义类型。
常量的声明:const,go语言中也有常量,其功能和其他类型语言的功能一样。
1、那什么是常量呢?
常量就是在程序开始到结束时都不会改变的量。常量的使用在程序中非常常见,因为是不变的量所以常量占用的内存资源相较于变量要少。
2、那什么数据是最适合使用常量?
常量经常用于定义一些数据、路径等,最为常见的就是圆周律π,Windows的环境变量都是常量,Mac中$HOME也是路径常量。
3、为何要使用常量?
常量的出现其实很简单,便于管理和规范,举一个简单例子,在公司中每个人对圆周率的使用时喜好是不同的,有的人是喜欢3.14、3.1415等,如果每个人都使用自己圆周率就会导致同样公式下计算的结果不一样,为了避免这种情况出现因此就需要定义一个所有人都无法改变的量来统一数据,防止出现上诉问题的出现。
类型的声明:type,go语言中的type和C++中的type有没有区别暂时不清楚,随后的学习会补齐这块内容。
函数声明:func,go语言中的func相对于其他语言的更为强大,C语言中void,bool,int,float都是常用的函数声明,go语言都将其全部纳入func中,而且func还能返回各种类型的值,更强大的是func可以返回多个值,极大程度上简化了代码。
包的声明:package,在C语言中假如要使用某个运行库的计算函数等,就需要声明这个运行库否则就无法调用其运行库。在go语言中将运行库的概念转变成了包,其效果和C语言中效果一样。
在C语言中有一个诟病,代码的运行库声明总会有一些没有使用到的,这样就会导致打包出来的程序有会连同未被使用的运行库一同打包出来,导致程序十分臃肿。go语言的发明者发现这个问题,因此对语言架构设计的时候就强制,如果程序中出现未被使用的包声明,就会导致编译打包失败。
接口声明:interface,go语言和C语言都是接口声明标识符,go语言在的interface是否和C语言功能一样这里还没学到,就不展开说。
这里主要说说C语言中的interface,曾经博主一个朋友问道interface究竟有什么作用?
interface在C语言中,接口是用来规范函数命名,有人会问,接口和虚函数有啥区别,这里就简单的说一下:
1、继承接口的时候必须要将实例化其接口函数,否则是编译不通过的,而虚函数不存在这个种强制性。
2、而派生类中由基类继承而来的虚函数具有改写基类虚函数的功能,然而接口并不具备这些功能。
3、派生类只能继承一个基类,而派生类是可以继承多个接口。
那么又有人会问:“不如直接就在这个类中写实现方法岂不是更便捷”。其实在很多眼中接口功能不如虚函数,有没有什么实际作用,干嘛要搞一个接口弄得怎么复杂繁琐。
举一个简单例子:把程序中每个接口比作电脑主板上的接口,每个主板都会有CPU接口,PCI-E接口,M·2接口、内存接口等,每个接口都有自己独立需要的功能,因此每个人在熟悉接口过后就可以迅速的组装电脑,假如接口不规范,每个板子的接口都长得不一样,那么我们就要熟悉各种板子的接口才能组装起电脑。因此代码的接口规范也是为了让新进或者协同开发的程序猿熟悉项目,可以更高效的工作开发了。因此代码中的接口就是为了提高工作效率和代码规范性以及可读性的重要方式之一。
最后总结:从go语言的声明中可以发现,Go语言在吸收了C语言和Java等多家语言的优秀的思想和 功能。并且在语言层面上尽量约束语言规范,尽可能让代码规范提高项目可读性,加大变成效率。
- GO语言学习日记(四)声明
- go 语言 学习日记1(unknown)
- GO语言学习日记(三)标识符
- GO语言学习日记(七)指针
- go语言学习-变量声明
- Go语言学习笔记(四)函数
- GO语言学习日记(六)常量的赋值
- GO语言学习日记(一)Windows环境下配置Go语言
- GO语言学习日记(五)GO语言变量与赋值
- 我的Go语言学习之旅四:各种变量的声明
- 黑马程序员-C语言学习日记(四)函数
- Go语言学习四:struct类型
- Go语言学习(四)常用类型介绍
- Go语言学习四:函数和类
- 《go语言编程》学习笔记四
- Go语言学习笔记(四)-控制语句
- Go学习日记<一>
- Go语言学习7:Go语言为什么要用变量名后置的方式做声明
- sessionStorage和localStorage 存取对象
- collections方法简单应用
- okio
- CSDN-markdown编辑器使用模板
- WordBreak
- GO语言学习日记(四)声明
- 选择排序-冒泡排序
- github无法提交的问题
- JAVA中使用FTPClient实现FTP上文件的操作
- java常用集合
- 关于工作安排
- 1.OpenGL学习之建立窗口
- 离线安装Chrome Postman 和Postman Interceptor 插件
- 带你通俗易懂的理解——线程、多线程与线程池