各大编程语言基本语法区别
1:语言特点
函数式语言和面向对象语言的区别:函数式用函数直接进行操作,面向对象用object.method()进行操作;如:len() <=> object.length()
C 语言:1)C 语言可以像汇编语言一样对位、字节和地址进行操作;2)有函数原型;3)具有大量的数值类型;4)函数是C语言的重点;5)指针;6)static变量生命周期为全程,但作用域为私有;普通全局变量生命周期为全程,作用域为全局;7).数组充当字符串语法,最后一个字符明确写‘\0’;8)对于代表的是地址的变量不能直接赋值。
ArkTS: 1)大量使用冒号:,冒号后面声明类型;2)java和js语法的集合体;3)由多个类型组合成的引用类型,联合类型;
Python:1.冒号缩进,书写格式严谨,靠空格;2.函数可以返回多个值
Go: 语法上和Python比较相似 1.用 := 符号声明变量及赋值(局部变量);2.iota关键字用法;3.拥有和C一样的指针*和&地址;4.没有三目运算符,所以不支持 ?: 形式的条件判断;5.有select 语句;6.函数可以返回多个值;7.切片(动态数组)[ ] [ : ],类比java List;7.错误处理采用显式返回错误的方式,而非传统的异常处理机制;8.返回类型在方法的最后;9.使用 <-
操作符发送和接收数据;10.不需要在语句或者声明的末尾添加分号,除非一行上有多条语句。11.只有 for
循环这一种循环语句。形式1)=》for initialization; condition; post { // zero or more statements };for
循环三个部分不需括号包围。for 循环的这三个部分每个都可以省略。大括号强制要求,左大括号必须和 post
语句在同一行。形式2)=》每次循环迭代,range
产生一对值;索引以及在该索引处的元素值。range关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素;12.空标识符(blank identifier),即 _
(也就是下划线)。空标识符可用于在任何语法需要变量名但程序逻辑不需要的时候(如:在循环里)丢弃不需要的循环索引,并保留元素值。13.nil代替
其它语言里的 NULL。14.test只需根据名称进行约定就可以,
go test命令是一个按照一定的约定和组织来测试代码的程序。15.名字的开头字母的大小写决定了名字在包外的可见性。如果一个名字是大写字母开头的(译注:必须是在函数外部定义的包级名字;包级函数名本身也是包级名字),那么它将是导出的,也就是说可以被外部的包访问,例如fmt包的Printf函数就是导出的,可以在fmt包外部访问。包本身的名字一般总是用小写字母。16.主要有四种类型的声明语句:var、const、type和func,分别对应变量、常量、类型和函数实体对象的声明。
2.数据类型
java 八大基本数据类型:byte、 short、int、long、float、double、char、boolean
js ES5 八大数据类型:String、Number、Boolean、Object、undefined、null 、ES6新增Symbol,BigInt(任意精度的整数)
C语言:int(整形:short(>=16位)、 long(>=32位)、long long(>=64位)、unsigned、signed等修饰符进行整形修饰)、float、double、char、void、_Bool、_Complex(float_Complex、double_Complex、long double_Complex)、_Imaginary(float_Imaginary、double_Imaginary、long double_Imaginary)
python:不可变数据(3 个):Number(int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。bool (布尔),Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True&