golang语言学习第二课:变量类型及常量与枚举

Posted golangxiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang语言学习第二课:变量类型及常量与枚举相关的知识,希望对你有一定的参考价值。

go语言的变量类型:

  • bool (true为0,false不等于0),
  • string 
  • int 分好多种int,有点头晕,但用默认的int就足够了,根据机器判断,是32位的用int32,是64位的用int64.
  • byte, 又是uint8的别名。
  • rune(类似char,但是是utf-8编码的char),又是int32的别名。
  • go语言没有float,只有float32, float 64(即使在32位的架构上还是64位)
  • go语言原生支持复数类型,类似python, python也支持复数。go语言的复数类型有2种:complex64, complex128。一般程序其实很少用的上

 

golang类型转换是强制的,不能隐式转换。

go语言定义常量

定义常量: const 常量名, 数据类型(类型可省略,具体到用的时候golang可自动规定)

注意:const 后面的常量名在go语言可以不用大写,在C里强制要大写的,go的大写是有特殊含义的,并且大小写是敏感的。

  function changliang ( ) {

  const (

    a, d = 3, 4  //常量可以规定类型,也可以不规定,不规定类似,类型是不确定的,此处a,d既可以做int任何一种类型, 又可以做float32, float64任何一种类型。

    b string ="hello"

  )       

  var c int

  c =  int ( math.Sqrt (a*a + b*b) )  //此处a,b类型为float64, 没规定类型直接放进来,math.Sqrt函数里是float64类型,就自动规定为float64类型。

  fmt.Println(c, b)

  }

枚举类型:

  const (

  python = iota  //从0开始自增,并且iota支持参加运算,具体看代码区域块里的代码

       _                 //golang特殊字符, 赋值后忽略 

  golang      // 值为2

       csharp     // 值为3

)

 

详见代码:

package main

import (
    "fmt"
    "math"
)

func main() {
    consttest()
    constiota()
    changliang()
}
func changliang()  {
    const(
        a, d = 3, 4
        b string = "gooing"
    )
    var c int
    fmt.Println(a, b)
    c = int(math.Sqrt(a*a + d*d)) //此处a,d为float64类型
    fmt.Println(c)

}
func consttest()  {
    const (
        python = iota
        golang
        _
        cpp
        clang

    )
    fmt.Println(python,golang,cpp,clang )

}

func constiota()  {
    //Byte, KB,MB, GB,TB
    const(
        b =1 << (10 * iota)  //iota能够参与运算
        kb
        mb
        gb
        tb

    )
    fmt.Println(b,kb,mb,gb,tb)
}

 

以上是关于golang语言学习第二课:变量类型及常量与枚举的主要内容,如果未能解决你的问题,请参考以下文章

C 语言第二课----数据类型常量变量

Golang学习笔记---go语言变量常量的定义及赋值

go基础语法-常量与枚举

Golang 学习入坑Go语言变量及常量

Golang✔️走进 Go 语言✔️ 第三课 常量

换个语言学一下 Golang ——变量与常量