Go 语言数据类型

68 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情

Hello world

代码

package main //包,表明代码所在的模块



import "fmt" //引入代码依赖



//功能实现

func main() {

   fmt.Println("Hello, World!")

}

说明

  1. 应用程序入口:

    1. 必须是 main 包:package main
    2. 必须是 main 方法:func main()
    3. 文件名可以随意更改,不一定是 main.go
  2. 返回值

    1. main函数不支持返回值,错误如下

command-line-arguments

.\test_01.go:6:6: func main must have no arguments and no return values

  1. 通过 os.Exit 来返回状态,比如输入 os.Exit(-2),会显示

  1. 获取命令行参数

    1. main 函数不支持传⼊入参数,即 func main~~(String[] args)~~
    2. 在程序中直接通过 os.Args 获取命令⾏行行参数

数据类型

代码

package main



import "fmt"



func main() {

   var i int = 10

   fmt.Println(i)

}



// 方式一

var (

    i int = 10

    j int = 10// 方式二

var i int = 10



// 方式三

var i = 10



// 方式四

var (

   i = 10

   j = 10 

)

说明

  1. Go 中定义的变量必须使用,不然就无法通过编译,这样子可以防止定义了变量不使用的情况,导致内存浪费;与此同时,在程序运行的时候可以查看变量 i 的结果
  1. 整数类型

区别

有符号整型可以为负数、零和正数;无符号整型只能为零和正数

  1. 浮点数

float32 和 float64,float64比较常用,因为精度更高

float32 精确到小数点后面 6 位;float64 精确到小数点后面15位

package main



import "fmt"



func main() {

   var f32 float32 = 2.2

   var f64 float32 = 10.34569798786785765656579989

   var f65 float64 = 10.34569798786785765656579989

   fmt.Println("f32 is", f32, ", f64 is", f64, "f65 is", f65)

}
  1. 布尔型

package main



import "fmt"



func main() {

   var bf bool = false

   var bt bool = true

   fmt.Println("bf is", bf, "bt is", bt)

}

很简单

  1. 字符串

字符串可以表示为任意的数据,也可以加起来

package main



import "fmt"



func main() {

    //String

    var s1 string = "hello"

    var s2 string = "你好"

    fmt.Println(s1, s2)

    //字符串相加

    fmt.Println(s1 + s2)

}

零其实是一个变量的默认值,在 Go 语言中,如果生命一个变量,没有对其进行初始化,那么 Go 语言会自动初始化其值为对应类型的零值。比如数字类型的零值为0,布尔型的零值为 false,字符串的零值为""空字符串

变量

它的出现主要是 var 关键字比较繁琐,所以 Go 提供了变量的简短声明 :=

然后通过=,也就是类似 i = 20 进行修改

package main



import "fmt"



func main() {

    //变量

    i := 10

    j := "hello"

    k := "world"

    fmt.Println(i)

    fmt.Println(j+k)

    i = 20

    fmt.Println(i)

}

指针

指针对应的是变量的内存地址,通过 & 获取指针,直接输出获得地址,加 *获得指针指向的变量值

package main



import "fmt"



func main() {

   i := 10

   pi := &i

   fmt.Println(*pi)

   fmt.Println(pi)

}

常量

常量的值在编译器就确定好了,不能修改

常量只允许布尔型、字符串和数字类型

const name = "飞雪无情"

fmt.Println(name)

const (

   one = 1

   two = 2

   three = 3

)

fmt.Println(one)



const (

   one = iota + 1

   two

 three

 four

)

fmt.Println(one, two, three, four)

转换

字符串和数字的转换

i2s:=strconv.Itoa(i)

s2i,err:=strconv.Atoi(i2s)

fmt.Println(i2s,s2i,err)

数字之间的转换

i2f:=float64(i)



f2i:=int(f64)



fmt.Println(i2f,f2i)