GO语言学习日记(四)声明

程序组成除了语言自身的标识符以外,一般都会使用大量的自定标识符,因此使用自定义标识符的时候就需要声明语句实现。

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等多家语言的优秀的思想和 功能。并且在语言层面上尽量约束语言规范,尽可能让代码规范提高项目可读性,加大变成效率。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值