zoukankan      html  css  js  c++  java
  • 四月二十二日报

    今日学习内容

    Go语言中的常量,变量,基本类型和运算符

    1.1常量:使用关键字const定义,用于存储不会改变的数据,数据类型只可以是布尔型,数字型(整数,浮点)和字符串型。

    • 显式类型定义:const b string ="abc"
    • 隐式类型定义:const b ="abc"

    常量的值必须是能够在编译时就能够确定的;你可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。

    • 正确的做法:const c1 = 2/3
    • 错误的做法:const c2 = getNumber() // 引发构建错误:

    常量还可以用作枚举(itoa可以被用作枚举值):

    const(
    	a =0
    	b =1
    	c =2
    )
    

    1.2变量:声明变量一般形式是使用var关键字

    C语言中int* a, b;只有 a 是指针而 b 不是。如果你想要这两个变量都是指针,则需要将它们分开书写。在Go中可以这样写var a,b *int,可以将a,b都声明为指针类型,这种语法能够按照从左到右顺序阅读,使得代码更容易理解。也可以这么写

    var(
    	a int
    	b bool
    	str string
    )
    

    当一个变量被声明之后,系统自动赋予它该类型的零值:int 为 0,float 为 0.0,bool 为 false,string 为空字符串,指针为 nil。记住,所有的内存在 Go 中都是经过初始化的。

    一般情况下,当变量a和变量b之间类型相同时,才能进行如a = b的赋值,Go 编译器已经可以根据变量的值来自动推断其类型了,如下

    var a = 15
    var b = false
    var str = "Go says hello to the world!"
    

    var (
        a = 15
        b = false
        str = "Go says hello to the world!"
    )
    

    当你在函数体内声明局部变量时,可以使用简明语法a:=1

    同一类型的多个变量可以声明在同一行,如:

    var a, b, c int
    

    在赋值时也可以写在同一行

    a, b, c = 5, 7, "abc"
    

    上面这行假设了变量 a,b 和 c 都已经被声明,否则的话应该这样使用:(并行赋值)

    a, b, c := 5, 7, "abc"
    

    1.3基本类型和运算符:

    • 布尔类型bool

      var b bool = true

      布尔型的值只可以是常量 true 或者 false。

      两个类型相同的值可以使用相等 == 或者不等 != 运算符来进行比较并获得一个布尔型的值。

    • 数字类型

      整数:

      • int8(-128 -> 127)
      • int16(-32768 -> 32767)
      • int32(-2,147,483,648 -> 2,147,483,647)
      • int64(-9,223,372,036,854,775,808 -> 9,223,372,036,854,775,807)

      无符号整数:

      • uint8(0 -> 255)
      • uint16(0 -> 65,535)
      • uint32(0 -> 4,294,967,295)
      • uint64(0 -> 18,446,744,073,709,551,615)

      浮点型:

      • float32(+- 1e-45 -> +- 3.4 * 1e38)
      • float64(+- 5 1e-324 -> 107 1e308)
    • 格式化说明符

      在格式化字符串里,%d 用于格式化整数(%x%X 用于格式化 16 进制表示的数字),%g 用于格式化浮点型(%f 输出浮点数,%e 输出科学计数表示法),%0d 用于规定输出定长的整数,其中开头的数字 0 是必须的。

      %n.mg 用于表示数字 n 并精确到小数点后 m 位,除了使用 g 之外,还可以使用 e 或者 f,例如:使用格式化字符串 %5.2e 来输出 3.4 的结果为 3.40e+00

    • 数字值转换

      当进行类似 a32bitInt = int32(a32Float) 的转换时,小数点后的数字将被丢弃。这种情况一般发生当从取值范围较大的类型转换为取值范围较小的类型时,或者你可以写一个专门用于处理类型转换的函数来确保没有发生精度的丢失。

  • 相关阅读:
    Windows系统批处理命令实现计划关机
    Git如何将本地test分支设置跟踪origin/test分支
    JavaScript动态实现div窗口弹出&消失功能
    深入理解 Array.prototype.map()
    JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
    Vue的移动端多图上传插件vue-easy-uploader
    如何开发一个npm包并发布
    emlog编辑器探寻之旅
    linux下安装nginx
    原生JavaScript中动画与特效的实现原理
  • 原文地址:https://www.cnblogs.com/swtczb/p/11632606.html
Copyright © 2011-2022 走看看