类型 编程语言

探究技术的本质,追寻技术的乐趣!如题,今天我们来聊聊类型,这里的类型需要限定范围,特指编程语言中的类型。如果要给众多编程语言按照类型来分类的话,可以分为两类,一类是静态类型的语言,一类是动态类型的语言。静态类型的语言的典型代表Java,动态类型的语言的典型代表Python。无论是动态还是静态都逃不出类型,就如同小说中常说的一样,"跳出三界之外,仍在五行之中",显而易见,类型是编程语言最基本的语法元素,就如同句子的主语一般,不可缺少。基本有时候会省略主语,那也是在上下文的环境中隐含了主语。就如同编程语言中的类型推导一般,比如Go中 var name = "pandaer"。既然类型如此基础,那么类型究竟代表了什么呢?我认为我们看待类型有两个视角,一个对内,一个对外。

对内:CPU的视角

CPU才不管你是什么类型,CPU只认机器码,也就是0101序列。根据机器码执行指令操作内存,如果你写过汇编代码,那么你一定有感触,读写内存的方式是使用内存地址,而且稍不注意就容易写错内存地址。这种没有边界检查式的读写内存,心智压力极大。也是因为这个原因,各个高级编程语言就利用类型来限定我们能够操作内存的范围。在高级编程语言中,变量就可以看成内存地址,因为内存地址是一串数字不方便记忆,所以利用变量来替代。而为变量赋予类型就是就是限定这个变量能操作的内存的范围。比如 var num int64要表达的意思就是num这个变量能操作的内存单元大小只有8个字节。通过类型来限制能够操作的内存范围,极大的减少了心智负担。这也是为什么C语言中的指针容易出错的原因所在,即失去了内存的范围限制。

对外:建模的视角

建模,其实就在在构建我们的程序的时候,只抽取对我们程序而言相关的属性,比如对于书而言,如果我们构建的是一个在线图书馆程序,我们可能更加关注书的名字,出版社,书的分类。而如果我们开发的是一个书店项目,我们可能更加关心书的价格,书的销量这些属性。而类型就提供了建模的能力,比如对于书而言,我们可以使用String类型来表示书的名字,使用Int类型来表示书的页码。

总结

类型对内限定了变量能够访问的内存范围,提高程序的安全性,对外提供了建模的手段。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值