首页 > 其他 > 详细

(Go) 2. 常量与变量

时间:2020-01-05 19:26:04      阅读:71      评论:0      收藏:0      [点我收藏+]

一. 变量

1.函数的特征

  • 函数外只能放标识符(变量\常量\函数\类型)
  • 如果要编译一个可执行文件,必须要声明一个main包,且代码中要有main函数
  • main函数是入口函数,没有参数,也没有返回值
  • 函数外必须以关键字开头

// 第一行必须声明包名
package main

//
导入语句 import "fmt" // fmt.Println("from G:") //非法 // 程序的入口函数 func main() { fmt.Println("from G:") }

2.标识符:字母数字下划线,只能以字母和下划线开头

3.25个关键字,37个保留字

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var

4.静态语言:变量必须要声明类型 eg:go             动态语言:变量无需声明类型,eg: pyhon

5.注释

// 单行注释

/* 多行注释 */

6.语法知识

// 第一行必须声明包名
package main
// 导入fmt包
import "fmt"

// 1.申明变量
// 局部变量必须先声明再使用,而且变量必须要使用,否则报错
// 全局变量可以只声明不使用
// 同一个作用域中不能重复声明同一个变量
var 变量名 变量类型

// 单独声明
var name string    // 默认为空字符串""
var age int        // 默认为0
var height float32 // 默认为0
var isOK bool      // 默认为false
// 切片、函数、指针变量的默认为nil

//批量声明
var (
    name   string
    age    int
    height float32
    isOK   bool
// )

//变量赋值与使用
func main() {
    name = "理想"
    age = 16
    // height = 171.5
    isOK = true
    fmt.Print(height)
    fmt.Print(name) // 末尾没有换行符
        fmt.Printf("age:%d", age)         // 格式化输出,末尾没有换行符
        fmt.Println()                     // 打印空行
        fmt.Printf("height:%f\n", height) // \n即换行符,%f默认保留6位小数
        fmt.Println(isOK)                 //末尾有换行符
}

// 2.其它
func main() {
//     //声明变量同时赋值
    var s1 string = "lhj"
    fmt.Println(s1)
//     //类型推导(根据值判断变量是什么类型)
    var s2 = 11
    fmt.Println(s2)
//     //简短声明,只能在函数里面用
    s3 := 0.5
    fmt.Println(s3)
}

// 3.匿名变量
// 如果函数返回值有多个,我们可以只接收一个,另一个用下划线 _ 接收
// 这样的好处是不占用内存,而且也避免了后面不使用该变量而报错的情况
func foo() (int, string) {
    return 10, "Q1mi"
}
func main() {
    x, _ := foo()
    _, y := foo()
    fmt.Println("x=", x, y)
    fmt.Println("y=", y)
}

// 4.总结,四种声明变量的方式var name string
  函数内部: string="xxx"var name string = "xxx"var name = "xxx"
④ name := "xxx"

 

 二. 常量

1.常量const的特征:

  • 常量在定义的时候必须赋值
  • 不能对同一常量反复定义
const pi = 3.1415
const e = "xxx"

 

可以批量定义

const (
    pi = 3.1415
    e = "xxx"
)

 

 const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 以下示例中,n1,n2,n3都是100

const (
    n1 = 100
    n2
    n3
)

 

 2. iota

  • go语言的常量计数器,只能在常量的表达式中使用
  • const中每新增一行常量声明, iota一(iota可理解为const语句块中的行索引, 定义枚举时很有用)
  • 在const关键字出现时将被重置为0

举例

const (
        n1 = iota //0
        n2        //1
        n3        //2
        n4        //3
    )

使用  _  跳过某些值

const (
        n1 = iota //0
        n2        //1
        _
        n4        //3
    )

声明中间插队

const (
        n1 = iota //0
        n2 = 100  //100
        n3 = iota //2
        n4        //3
    )
const n5 = iota //0

多个iota定义在一行

const (
        a, b = iota + 1, iota + 2 //1,2
        c, d                      //2,3
        e, f                      //3,4
)

定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

const (
        _  = iota
        KB = 1 << (10 * iota)
        MB = 1 << (10 * iota)
        GB = 1 << (10 * iota)
        TB = 1 << (10 * iota)
        PB = 1 << (10 * iota)
)

 

 

 

 

 

 

 


---  君子处其实,不处其华;治其内,不治其外   张居正  ----

(Go) 2. 常量与变量

原文:https://www.cnblogs.com/jiangzongyou/p/12153172.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!