golang变量

来源:互联网 发布:电脑网络电视直播软件 编辑:程序博客网 时间:2024/05/29 11:58

GO语言变量

  1. 变量声明
//指定变量类型,声明后若不赋值,使用默认值var var_name typevar_name = value// 根据值自行判定变量类型var var_name = value// 省略var, :=左边的变量不应该是已经声明过的,否则将会编译报错var_name := value // 只能被用在函数体内例:var a int = 10var b = 10c := 10
  1. 多变量声明
// 类型相同多个变量,非全局变量var  v_name1, v_name2, v_name3 typev_name1, v_name2, v_name3 = v1,v2,v3// 和Python很像,不需要显示声明类型,自动推断var v_name1, v_name2, v_name3 = v1, v2, v3// 出现在:=左侧的变量不应该是已经被声明过的,否则会编译报错  这种不带声明格式的只能在函数体中出现v_name1, v_name2, v_name3 := v1, v2, v3//这种因式分解关键字的写法一般用于声明全局变量var(    v_name1 type    v_name2 type)
  1. 值类型和引用类型
    • 所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值
    • 当使用等号 = 将一个变量的值赋值给另一个变量时,如:j = i,实际上是在内存中将 i 的值进行了拷贝。你可以通过 &i 来获取变量 i 的内存地址

变量

  1. 大写字母开头的变量是可导出的,是公用变量
  2. 小写字母开头的是不可导出的,是私有变量
  3. 大写字母开头的函数也是一样,相当于class里面带public关键词的公有函数
  4. 小写字母开头的函数就相当于class里面带private关键词的私有函数
  5. 全局变量(变量组只能在全局环境下使用)

    var (
    name = "gopher",
    name1 = 1,
    name2 = "2"
    )
  6. 一般类型声明

    type (
    newType int
    type1 float32
    type2 string
    type3 byte
    )
  7. 自定义类型

    type(
    byte int8
    name int32
    文本 string
    )
  8. 变量的类型转换
    • Go中不存在隐式转换,所有类型转换必须显式声明
    • 转换只能发生在两种相互兼容的类型之间
    • 类型转换的格式:var a float32 = 1.1 -> b := int(a),var a int = 65 -> string(a) -> A
    • 数字类型转换成字符串 -> import strconv -> b:=strconv.Itoa(a) -> a=strconv.Atoi(b)
    • string(byte) -> 转换成字符串
  9. Print用双引号,反引号相当于Python里面的“`。单引号->rune类型