Golang- GO语言学习笔记之定义变量


本文摘自网络,作者,侵删。

参考链接: Go-变量

目录 

Golang 编程注意事项 

定义变量 

包内变量 

函数内变量 

总结: 

内建变量类型 

bool, string 

整数类型 

byte, rune 

float32,float64,complex64,complex128 

常量与枚举 

常量 

使用常量定义枚举类型 


  


 

 Golang 编程注意事项 

 

go语言定义的变量一定要被使用,不然会报错方法体()和{一定要连写,不能换行使用fmt.Printf时需要自己手动换行注释用  //

 

 定义变量 

 

变量类型写在变量名之后编译器可以推测变量类型没有char,只有rune原生支持复数类型

 

 包内变量 

 

package main

import "fmt"


// 1.函数外部定义变量,必须有var或者func来定义,不能用 := 定义

// 变量的作用域是本包内部 如:package main内部

var aa = 3

var ss = "kkk"

var bb = true

func main() {

    fmt.Println(aa, ss, bb)

可以简写为 

// 可以简写用一个var定义变量

var (

    aa = 3

    ss = "kkk"

    bb = true

 

 函数内变量 

 

  

// 2.函数内部定义变量

func variableZeroValue(){

    var a int

    var s string

    fmt.Printf("%d %q \n",a,s)

}

// 像c,c++ 可以同时给多个变量指定类型

func variableInitialValue(){

    var a, b int =3, 4

    var s string = "abc"

    fmt.Println(a, b, s)

}


// 自动适配变量类型

func variableTypeDeduction(){

    var a, b, c, s = 3, 4, true, "def"

    fmt.Println(a, b, c, s)

}


// 初次用 :=定义变量且赋值,没有类型不能用=,再次赋值用 =

func variableShorter(){

    a, b, c, s := 3, 4, true, "def"

    fmt.Println(a, b, c, s)

}

func main() {

    fmt.Println("hello world")

    variableZeroValue()

    variableInitialValue()

    variableTypeDeduction()

    variableShorter()

 

 总结: 

 

使用var关键字 

var a, b,c boolvar s1, s2 string = “hello”, “world”可放在函数内,或直接放在包内作用var()集中定义变量

让编译器自动决定类型 

var a,b, i, s1, s2 = true, false, 3, “hello”, “world”

使用 :=定义变量 

a,b, i, s1, s2 := true, false, 3, “hello”, “world”只能在函数内使用

 

 内建变量类型 

 

  

bool, string 

  

整数类型 

没有long,Long类型 

有符号整数分两类: 

有固定长度:int, int8, int16, int32, int64, intptr(指针,也根据系统长度) 

无固定长度:int 长度根据操作系统来,32位系统长度为32,64位系统长度为64 

无符号整数: (u)int, (u)int8, (u)int16, (u)int32, (u)int64, uintptr 

byte, rune 

rune是go语言的字符型,char只有一字节,国际化时坑多,rune的字节为32位,unicode两字节,utf-8很多字符3个字节,因此我们用一个4字节的int ascii来代表rune,byte是8位的,rune是32位的,他们跟整数是可以互用的,我们等于说对于整数来说就是个别名 

float32,float64,complex64,complex128 

complex复数,complex64的实部和虚部分别是32位,complex128的实部和虚部分别是64位 

 

 常量与枚举 

 

 

 常量 

 

const值可以作为各种类型使用 

// 常量可以放在包内,都包内,函数内都可以使用,一般用小写,大写有其他含义

const filename = "abc.txt"

func consts(){

    // const不指定类型时,其他地方用到时可以避免要强制转换,也可以指定类型

    const a, b = 3,4

    var c int

    c = int(math.Sqrt(a * a + b * b))

    fmt.Println(filename, c)

可以简写成一个代码块 

const(

   filename = "abc.txt"

    a, b = 3,4

 

 使用常量定义枚举类型 

 

普通值枚举类型 

func enums(){

    const(

        cpp = 0

        java = 1

        python = 3

        golang = 4

    )

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

自增值枚举类型 

使用iota递增 

func enums(){

    const(

        cpp = iota

        _     // 跳过一个1

        python

        golang

        javascript

    )

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

// 输出javascript为4

func enums(){

    const(

        cpp = iota

        _

        python

        golang

        javascript

    )

    // b, kb, mb, gb, tb, pb

    const(

        b = 1 <<(10 * iota)

        kb

        mb

        gb

        tb

        pb

    )

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

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

// 输出 1 1024 1048576 1073741824 1099511627776 1125899906842624

}



本文来自:51CTO博客

感谢作者:wx592a7561e9493

查看原文:Golang- GO语言学习笔记之定义变量

相关阅读 >>

Go语言范围(range)

Go语言基础之反射

centos7 安装Godoc

Go错误处理

Golang如何创建守护进程以及平滑重启

Golang 在 runtime 中的一些骚东西

Golang版本的简易数据同步

Go中sync.mutex源码解读

手撸Golang etcd raft协议之4

手撸Golang Go与微服务 saga模式之8 集成测试

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...