变量声明
-
Go
- 变量名由字母、数字、下划线组成,其中首个字符不能为数字
- 声明变量的一般形式是使用 var 关键字
- 可以一次声明多个变量
var a,b,c = 1,2,3
- 声明时若没有初始化会被赋默认值,
"",false,0,nil;
- 声明时不指定类型,程序会自行判断变量类型
- 可以省略var关键字声明,使用:= 符号,但是左边的变量名不能已经存在
- 使用简短形式进行局部变量声明后,就必须使用,否则会报错,全局变量无要求
- 可以使用_ ,这里_表示一个只写变量,无法读到他的值,可以被弃用
- 一个函数可以返回多个值
-
Java
- 相同
- 声明变量需要指定对应的变量类型
- 不支持一次声明多个
- 声明时若没有初始化也会被赋默认值,
"",false,0,null,
- 声明时不指定类型,程序会报错
- 不支持省略变量类型声明
- 不支持简短形式声明变量,但是可以弃用局部变量
- 没有可以使用_ 进行表示弃用的功能
- 一个方法只能返回一个类型的值
-
Python
- 基本相同,但是_开头的表示为私有的,不能直接访问
- 变量声明不需要指定类型,但是也可以使用var进行指定
- 支持多变量同时声明
- 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
- 同Go语言,可以不声明变量类型,程序会判断
- 支持简短形式
- 可以弃用
- 可以返回多个值
-
JavaScript
- 基本相同
- 需要使用var进行声明定义
- 支持多变量同时声明
- 有默认值 undefined;
- 同上
常量声明
-
Go
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
- 使用const 关键字
- iota,特殊常量,在const内部块中使用, const关键字出现时将被重置为 0
-
Java
- 使用final关键字进行声明
-
Python
- python没有常量
-
JavaScript
- 使用const关键字进行声明
值类型与引用类型
- 概念:
值类型
一些基础类型,例如基础数据类型和字符串类型会在计算机中存储有一份,所以当变量声明为这些基础类型时,变量在计算机中没有内存地址,而是直接指向栈中存储的数据。引用类型
一些复杂类型和自定义的类型,在变量声明时,会将数据的引用地址赋值给变量,变量此时拥有的是该对象的一份内存地址,而非直接数据。值传递
在调用方法是,值类型被传入方法参数,这是称为值传递引用传递
在调用方法是,引用类型被传入方法参数,这是称为值传递