《rust实践》rust语言语法与高级语言比较
[复制链接]
“rust语言语法与高级语言比较”,其实没有啥可以比较地!,因为想学好rust需要先把以前的编程概念统统丢掉,rust是一门全新的编程语言,概念上具有传统编程思想的颠覆性,就像C语言(过程语言)到C++(面向对象语言)一样,是一套全新的思想体系。rust特别注重静态特性,这个特质导致了很多看上去较为奇怪的语法,例如:println!宏,而不是函数。为啥要使用宏?,这个就是静态思想的一种体现,因为使用函数就会导致语言的平台依赖,使用宏可以避免这种依赖,宏的语法是统一的没有平台特性,由于各种平台的系统相关调用参数不一样,不同的平台使用自己的实现方式,而不是象C语言一样在源码中使用#if ... #endif这样的定义,而宏没有这样的烦恼。rust中的概念很多都是全新的,例如:变量,在多数的程序语言中变量就是一段数据地址,在使用过程中可以随意地改变存储器地址地内容,也就是可以随意地改变变量的值,而rust中的“变量”是只读的,而且只要所有者转移就不可以在次使用,这些特性是rsut才有的概念,无法和C语言类比,我更希望称之为“数据定义”。这些都是静态的特征,用来增强rust编译期间的除错能力。
在此我强调抛弃原来的编程概念,rust发明了很多的新概念,与原来的语言很多是不同的,例如:在多数的语言中引用的概念都是指使用地址指针来操作引用体内容(命名地址的内容,哈哈!你知道这是什么吗?),例如C语言中的指针,可以指向任何的引用体,甚至是任何允许进程内的地址,这种灵活的特性给程序“为所欲为”的特性,但是也给软件的安全运行带来了复杂性,稍有不慎就会引起灾难。rust为了规避程序不规范的操作定义了全新的“引用”概念。rust的引用只是让变量的作用域转换,而不是真正的地址指针,只是一个编译期符号,用来跟踪数据的作用域。
rust语言有太多的新概念了,数据分类型比较,表达式求值,程序循环控制等等。
总结:学好rust的关键是,把rust看成是一门新的程序语言。
|