Go语言学习及java/js/py语言与对比(二)

变量声明

  • Go

    1. 变量名由字母、数字、下划线组成,其中首个字符不能为数字
    2. 声明变量的一般形式是使用 var 关键字
    3. 可以一次声明多个变量 var a,b,c = 1,2,3
    4. 声明时若没有初始化会被赋默认值,"",false,0,nil;
    5. 声明时不指定类型,程序会自行判断变量类型
    6. 可以省略var关键字声明,使用:= 符号,但是左边的变量名不能已经存在
    7. 使用简短形式进行局部变量声明后,就必须使用,否则会报错,全局变量无要求
    8. 可以使用_ ,这里_表示一个只写变量,无法读到他的值,可以被弃用
    9. 一个函数可以返回多个值
  • Java

    1. 相同
    2. 声明变量需要指定对应的变量类型
    3. 不支持一次声明多个
    4. 声明时若没有初始化也会被赋默认值,"",false,0,null,
    5. 声明时不指定类型,程序会报错
    6. 不支持省略变量类型声明
    7. 不支持简短形式声明变量,但是可以弃用局部变量
    8. 没有可以使用_ 进行表示弃用的功能
    9. 一个方法只能返回一个类型的值
  • Python

    1. 基本相同,但是_开头的表示为私有的,不能直接访问
    2. 变量声明不需要指定类型,但是也可以使用var进行指定
    3. 支持多变量同时声明
    4. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
    5. 同Go语言,可以不声明变量类型,程序会判断
    6. 支持简短形式
    7. 可以弃用
    8. 可以返回多个值
  • JavaScript

    1. 基本相同
    2. 需要使用var进行声明定义
    3. 支持多变量同时声明
    4. 有默认值 undefined;
    5. 同上

常量声明

  • Go

    1. 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
    2. 使用const 关键字
    3. iota,特殊常量,在const内部块中使用, const关键字出现时将被重置为 0
  • Java

    1. 使用final关键字进行声明
  • Python

    1. python没有常量
  • JavaScript

    1. 使用const关键字进行声明

值类型与引用类型

  • 概念:
    • 值类型
      一些基础类型,例如基础数据类型和字符串类型会在计算机中存储有一份,所以当变量声明为这些基础类型时,变量在计算机中没有内存地址,而是直接指向栈中存储的数据。

    • 引用类型
      一些复杂类型和自定义的类型,在变量声明时,会将数据的引用地址赋值给变量,变量此时拥有的是该对象的一份内存地址,而非直接数据。

    • 值传递
      在调用方法是,值类型被传入方法参数,这是称为值传递

    • 引用传递
      在调用方法是,引用类型被传入方法参数,这是称为值传递

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容