教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go语言笔记:变量

Go语言笔记:变量

发布时间:2022-12-30   编辑:jiaochengji.com
教程集为您提供Go语言笔记:变量等资源,欢迎您收藏本站,我们将为您提供最新的Go语言笔记:变量资源

变量指向一个内存地址,其中存储了某种类型的值。在静态语言中,此内存存储的变量类型不可变。

  1. Go 中的变量如何声明?
  2. Go 变量声明可以指定哪些类型?
  3. Go 中如何实现类型的转换和断言?

1. Go 中的变量如何声明

使用 var 关键词声明变量,有以下几种可变形式:

  1. 简单的类型声明:var a int
  2. 声明并赋初值:var a int = 1 或 var a = 1
  3. 同时声明多个变量: var a, b = 1, 2

当声明初始值时,可以不用指定类型,Go 会根据赋值判断并自动定义变量的类型。

以下为变量声明的示例:

package main

import "fmt"

func main() {
  var a int 
  var b int = 2 
  var c = 3 
  
  var d, e  = 4, 5
  
  fmt.Printf("a: %d, b: %d, c: %d, d: %d, e: %d", a, b, c, d, e)
}

Go 还提供了省略 var 关键词的声明方式,需要注意的是,已经声明的变量不能再次使用 :=,除非左边有新的变量:

package main

import "fmt"

func main() {
    a := 1
    fmt.Println(a)
    
    a, b := 2, 3
    fmt.Printf("a: %d, b: %d", a, b)
}

2. Go 变量声明可以指定哪些类型

  • 数字类型
  • 字符串类型
  • 布尔类型

数字类型:

int和uint的大小与运行环境的位数相关,int8是8bit,取值范围为-128到127

int,int8,int16,int32,int64
uint,uint8,uint16,uint32,uint64

complex 是复数类型

float32,float64,complex64,complex128

字符串类型

字符串底层是作为一个字节序列存储的

布尔类型就是我们常用的 true 和 false

3. Go 中如何实现类型的转换

  1. int -> int64
  2. string -> int
  3. int -> string

更多转换查看 strconv包。

注意:int 转换为 int64 在32位机器上存在精度问题。

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // int 到 int64
    a := 1
    b := int64(a)
    fmt.Printf("a: %d, b: %d", a, b)

    // string 到 int
    c := "123"
    d, _ := strconv.Atoi(c)
    fmt.Printf("c: %s, d %d", c, d)

    // int 到 string
    e := 234
    f := strconv.Itoa(e)
    fmt.Printf("e: %d, f %s", e, f)

    // float32 到 string
    g := 3.14
    h := strconv.FormatFloat(g, 'E', -1, 32)
    fmt.Printf("g: %f, h: %s", g, h)
}

Reference

  • Strings in Go
  • strconv

到此这篇关于“Go语言笔记:变量”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
想系统学习GO语言(Golang
Golang学习笔记(五):Go语言与C语言的区别
go run main.go 参数_Go语言入门:Hello world
Go语言笔记--基础(一)
go语言杂谈-----函数返回局部变量问题(“逃逸分析”)
龙芯平台构建Go语言环境指南
Go 语言十年而立,Go2 蓄势待发
Golang学习笔记-变量,常量,运算符
与 Jupyter 交互的 Go 编程
golang ide 环境搭建_Go语言环境搭建详解(2020版)

[关闭]
~ ~