定义方法变量

2023-04-07  本文已影响0人  爱吃豆包
package main

// 导包
import (
    "fmt"
    "math"
)

// 定义包内部全局变量
// 因为我现在在main这个包下面,相当于就是 我这个变量是这个包内部的全局变量
// 两种方式定义变量
var aa = 3
var ss = "kkk"
var bb = true

var (
    dd = 3
    ff = "kkk"
    tt = true
)


// 定义方法, 空值
func variableZeroValue()  {
    var a int
    var s string

    // go语言不输出 string 空值
    fmt.Println(a,s)
    // 如果希望输出 go 语言的 string 空值
    fmt.Printf("%d %q\n",a,s)

}

// 定义方法,赋初始值
func variableInitialValue(){
    var a, b int = 3, 4
    var s string = "abc"

    fmt.Println(a,b,s)
}

// 定义方法, 省略基本类型
func variableTypeDeduction(){
    // 可以推测自动类型, 就是可以不用写变量的属性
    var a, b =3, 4
    var s = "abc"
    fmt.Println(a, b, s)
}

// 定义方法, 常量
func consts(){
    // 定义常量
    const filename  = "abc.txt"
    const a, b = 3, 4
    var c int
    c = int(math.Sqrt(a*a + b*b))
    fmt.Println(filename, c)
}

func constss(){
    // 定义常量
    const (
        filename  = "abc.txt"
        a, b = 3, 4
    )
    var c int
    c = int(math.Sqrt(a*a + b*b))
    fmt.Println(filename, c)
}

// 定义枚举, go语言中没有枚举关键字, 一般都是用 const 定义的一组变量当做枚举
func enums(){
    //const (
    //  cpp = 0
    //  java = 1
    //  python = 2
    //  golang = 3
    //)

    // iota 表示自增值, 从0开始
    const (
        cpp = iota
        java
        python
        golang
    )

    // iota 可以参与运算,用的好的话,可以当做种子来进行自增值
    const (
        b = 1 << (10 * iota)
        kb
        mb
        gb
        tb
    )
    fmt.Println(cpp, java, python, golang)
    fmt.Println(b, kb, mb, gb, tb)
}


func main() {
    fmt.Println("Hello world")
    variableZeroValue()
    variableInitialValue()
    variableTypeDeduction()
    consts()
    enums()
}

上一篇下一篇

猜你喜欢

热点阅读