Loading... ## 面对过程 c 根据实际问题解决当前问题,代码重构能力低。 --- ## 面对对象 java 通过类的封装等实现当前问题的一个通解,当遇到类似的问题时,通过类的继承可以方便地写出解决方案,本质上是为了提高代码重构能力。 --- ## 函数式编程思维 ``` h(g(f(x))) = > (h*(g*f))(x) = > ((h*g)*f)(x) ``` 函数式编程关心数据的映射关系,你会总是在构造一个巨大的表达式(通过组合已有的表达式),然后把数据灌进去,结果就出来了。上面的公式你会写成右边的形式。 流操作 --- ## 命令式编程思维 ``` h(g(f(x))) < = (h*(g*f))(x) < = ((h*g)*f)(x) ``` 命令式编程关心解决问题的步骤,你总是在操作数据,等你把数据操作完了,结果就出来了。上面的公式你会写成左边的形式 --- ## 静态语言 c++ java 编译的时候就知道每一个变量的类型,因为类型错误而不能做的事情是语法错误。变量类型指定后不可变。 --- ## 动态语言 python 编译的时候不知道每一个变量的类型,因为类型错误而不能做的事情是运行时错误。变量类型是可变的。 --- ## 强类型语言 偏向于不容忍隐式类型转换。仅仅是偏向,不是一点也不能。 注意:这里的类型转换不是指该变量改变了自身的类型,而是指赋值时,可以当作另一种类型进行运作。 --- ## 弱类型语言 偏向于容忍隐式类型转换。 <div class="tip inlineBlock share"> 语言是强类型还是弱类型在学界尚有一定争论,因为两者的界限不是特别明了,或者说,程序员编程的影响大于语言本身的影响,如果程序员编程时考虑周全,添加各种隐式转换,那么就使其倾向于弱类型了 </div> --- ## 编译型语言 c c++ 编译器会将源代码一次性全部编译成二进制文件,然后计算机可以直接执行。 --- ## 解释型语言(脚本语言) python GDscript 由解释器一行一行读取源代码,实时将源代码解释成计算机可识别的二进制数据执行。 <div class="tip inlineBlock share"> java语言无疑是特别的那个,它先编译,再解释,由于编译出的是特殊的class文件,不是二进制文件,这个特殊文件由java虚拟机(解释器)执行,所以java是解释型语言 </div> --- 最后修改:2020 年 11 月 22 日 05 : 42 PM © 允许规范转载