由于 语言切换太多,不得不去思考下各们语言的本质
1、语言的最底层
计算机底层数据为二进制数据,各种语言通过编译再编译转换成二进制数值,通过各种编码表最终转换为计算机可识别的数值
2、追本溯源
底层是二进制数据,那么各门语言之间的关系是什么?
C为各大语言的爸爸。在计算机内底层设计中,数值被存贮在内存空间中
<1>如Python语言
m = “body” 是在内存中开辟出一块内存空间,这块内存空间有它自己的内存地址。计算机可以通过内存地址找到它,由于内存地址记不住,所以给它起了一个别名m
Python 也可以通过别名去找到它
拿 清华大学作比喻,清华大学就是别名,清华大学的地址就是内存地址,清华大学的各种建筑物,里面所有的东西都是内存空间的数据。
<2> 语言的底层
所有语言中,都会给内存地址起一个别名。对数据进行操作,最核心的是对内存空间中的数据进行操作。
在内存空间中,body是一个字符串,在计算机看来,是4个二进制数据,每个二级制数字通过编码表代表一个字符,因而
body这个字符串,底层被设计为数组是最合理的。
由于编码的原因,因而所有语言中,int类型都被强制转换为string类型,float和int可以互相强转。
<3>go
go 在我看来,是吸收了c的指针精华,c++的内存管理,java的严谨,Python的灵活的一门新语言,既然是一门新语言,所以忘了前面的四种特性
在语言中,最核心的部分还是对内存空间中数值的操作。
数值最常规的操作为增删改查。
以下是go的最主要的特性:
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性