Golang笔记之变量

哈哈

package main

// 关键字var 声明变量 类型信息放在变量名后
//声明一个int型变量
var v1 int

//声明一个string类型
var v2 string

//声明多个变量
var v3, v4 bool

//[0 0 0 0 0 0 0 0 0 0] 数组
var v5 [10]int

//数组切片
var v6 []int

//声明结构体
var v7 struct {
    f int
}

// 声明指针
var v8 *int

//声明map key为string类型,value是int类型
var v9 map[string]int

// 匿名函数和闭包
var v10 func(a int) int

//多个需要声明的变量放在一起
var (
    name int
    age  string
)
声明变量
package main

import "fmt"

func main() {
    //声明变量的初始化,var 可以省略写法
    var v1 int = 10
    //编译器可以自动算出v2的类型
    var v2 = 10
    //编译器自动算出v3的类型
    //同时进行变量声明和初始化
    v3 := 10
    fmt.Println(v1, v2, v3)
}

//  出现在:= 左侧的变量 只能声明一次,不可重复
变量初始化
package main

import "fmt"

//声明之后再赋值
func main() {
    var i int
    i = 100
    var j int
    j = 50
    //Go语言的多重赋值,如下代码交换i和j的变量
    //go的多重赋值特性可以很明显的优化代码,相比c/c++
    i, j = j, i
    fmt.Println(i, j)
}
变量赋值
package main

import "fmt"

//使用强类型语言编程时,调用函数时为了获取一个值,却因为函数返回多个值,又得定义一堆变量
//可以使用多重返回和匿名变量来避免这些问题
func GetName() (firstname, lastname, nickname string) {
    return "yu", "yuchao", "chaoge"
}

//只想获得nickname,函数调用语句可以写
func main() {
    //优化代码的清晰度
    _, _, nickname := GetName()
    fmt.Println(nickname)

}
匿名变量
package main

//声明go代码所属的包,包是go例最基本的分发单位,要生成可执行程序,必须名为main,且下面有个main()函数,作为执行起点

//导入本程序所以来的包,下列用到Println()函数,所以导入fmt
import "fmt"

//不得在源代码中写入未使用的包,否则编译器会出错
//软件工程的设计哲学,强制左花括号 { 的放置位置
//函数名的大小写规则
func Compute(value1 int, value2 float64) (resule float64, err error) {
    //函数体

    fmt.Println(value1, value2)
    return
}

//main函数不能带参数,也不能定义返回值,命令行传入的参数存在os.Args变量中
func main() {
    Compute(1, 3)
}
代码解读
package main

//常量是编译期间就已知,而且不可改变,可以是数值类型(整型、浮点型、复数)、布尔类型、字符串
const Pi float64 = 3.14159265358979323846

//无类型浮点常量
const Zero = 0.0

const (
    //无类型常量
    size int64 = 1024
    eof        = -1
)

//常量多重赋值 u=0.0  v=3.0
const u, v float32 = 0, 3
//无类型整型,字符串常量
const a, b, c = 3, 4, "foo"
常量

 

posted @ 2017-12-13 16:47  py鱼  阅读(320)  评论(0编辑  收藏  举报
点我回主页