Go变量声明

go变量类型声明

  • 变量短声明
    go语言是强类型语言所以在变量的声明中制定类型,但是在方法中声明的变量可以不需要关键字var以及变量类型,系统
    会自动识别, fmt函数中 %v 输出为相应值的默认格式 ,%T 格式化输出该值的类型。
func main() {
    a := 10
    b := "golang"
    c := 4.17
    d := true
    e := "Hello"
    f := `Do you like my hat?`
    g := 'M'
    fmt.Printf("%v \n", a)
    fmt.Printf("%v \n", b)
    fmt.Printf("%v \n", c)
    fmt.Printf("%v \n", d)
    fmt.Printf("%v \n", e)
    fmt.Printf("%v \n", f)
    fmt.Printf("%v \n", g)
    fmt.Printf("%T \n", a)
    fmt.Printf("%T \n", b)
    fmt.Printf("%T \n", c)
    fmt.Printf("%T \n", d)
    fmt.Printf("%T \n", e)
    fmt.Printf("%T \n", f)
    fmt.Printf("%T \n", g)
}
  • 变量默认值
func main() {
    var a int
    var b string
    var c float64
    var d bool
    fmt.Printf("%v \n", a)
    fmt.Printf("%v \n", b)
    fmt.Printf("%v \n", c)
    fmt.Printf("%v \n", d)
}

输出为0 "" 0 false

  • 变量带类型先声明后赋值
func main() {
    var message string
    message = "Hello World."
    fmt.Println(message)
}
  • 多变量同类型先声明后赋值
func main() {
    var message string
    var a, b, c int
    a = 1
    message = "Hello World!"
    fmt.Println(message, a, b, c)
}
  • 多变量同类型声明同时赋值
func main() {
    var message = "Hello World!"
    var a, b, c int = 1, 2, 3
    fmt.Println(message, a, b, c)
}
  • 多变量推断类型(同类型)声明同时赋值
    在方法中或者其他代码块中都可以使用,可以定义一个自己不确定的变量类型
func main() {
    var message = "Hello World!"
    var a, b, c = 1, 2, 3
    fmt.Println(message, a, b, c)
}
  • 多变量推断类型(不同类型)声明同时赋值
func main() {
    var message = "Hello World!"
    var a, b, c = 1, false, 3
    fmt.Println(message, a, b, c)
}
  • 变量各种声明的形式
package main
import "fmt"
var a = "this is stored in the variable a"     // package scope
var b, c string = "stored in b", "stored in c" // package scope
var d string                                   // package scope
func main() {
    d = "stored in d" // declaration above; assignment here; package scope
    var e = 42        // function scope - subsequent variables have func scope:
    f := 43
    g := "stored in g"
    h, i := "stored in h", "stored in i"
    j, k, l, m := 44.7, true, false, 'm' // single quotes
    n := "n"                             // double quotes
    o := `o`                             // back ticks
    fmt.Println("a - ", a)
    fmt.Println("b - ", b)
    fmt.Println("c - ", c)
    fmt.Println("d - ", d)
    fmt.Println("e - ", e)
    fmt.Println("f - ", f)
    fmt.Println("g - ", g)
    fmt.Println("h - ", h)
    fmt.Println("i - ", i)
    fmt.Println("j - ", j)
    fmt.Println("k - ", k)
    fmt.Println("l - ", l)
    fmt.Println("m - ", m)
    fmt.Println("n - ", n)
    fmt.Println("o - ", o)
}

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 121,187评论 16 134
  • 前言 Swift是一门新的适用于iOS,macOS,watchOS,tvOS开发的编程语言。尽管如此,Swift的...
    BoomLee阅读 1,077评论 0 4
  • 基本内置类型 算术类型字符整型布尔值浮点数 空类型(void) 算术类型 带符号类型和无符号类型int、short...
    洛烟斋阅读 2,018评论 0 1
  • 关于阴翳之美 看了老先生的阴翳之美,尚未看完,但是书中的某些说法我非常认同。 在他描述漆器之美所描述的昏暗灯光下的...
    wen_a阅读 263评论 0 1
  • 一言不合就上图 1:安卓 很早以前写过一个类似的效果,不过当时的做法是: 在FrameLayout中布局listv...
    暗尘随码去阅读 8,420评论 8 24