Go 语言学习笔记 -第2章 程序结构

栏目: IT技术 · 发布时间: 4年前

内容简介:[toc]首字母大写的一般是public方法,首字母小写不能直接调用使用驼峰式的风格

Go 语言学习笔记 -第2章

[toc]

程序结构

名称

首字母大写的一般是public方法,首字母小写不能直接调用

使用驼峰式的风格

声明

每一个文件都是以package声明开头,表明文件是属于哪个包

有且只有一个main包

变量

1.变量是程序的基本组成单位

变量相当于内存中一个数据储存空间的表示

你可以把变量看做一个房间的门牌号

通过门牌号我们可以找到房间

同样的道理,通过变量名可以访问到变量值

2.变量使用的基本步骤:

1、声明变量(定义变量)

2、赋值

3、使用

3.变量使用注意事项:

1、 变量表示内存中的一个存储区域,该区域有自己的名称(变量名)和类型(数据类型)

2、 Go 变量使用三种方式

1)指定变量类型,声明后若不赋值使用默认值

2)根据值自行判定变量类型

3)省略var, 注意 := 左侧的变量不应该是已经声明过的 否则会导致编译错误

3、多变量声明

一次性声明多个变量

package main

import "fmt"

//全局变量
var n1 = 100
var n2 = 200
var name = "jack"

//上面声明方式也可以改成一次性声明
var (
    n3    = 300
    n4    = 900
    name2 = "mary"
)

func main() {
    //指定变量类型,声明后若不赋值使用默认值
    //int默认值为0
    // var i int

    // fmt.Println("i=", i)

    //根据值自行判定变量类型
    // var num = 10.11
    // fmt.Println("num=", num)

    //省略var
    // name := "tom"
    // fmt.Println("name=", name)

    //多变量声明
    // var n1, n2, n3 int
    // fmt.Println("n1=", n1, "n2=", n2, "n3=", n3)

    // var n1, name, n3 = 100, "tom", 888
    // fmt.Println("n1=", n1, "name=", name, "n3=", n3)

    // n1, name, n3 := 100, "tom", 888
    // fmt.Println("n1=", n1, "name=", name, "n3=", n3)
    fmt.Println("n1=", n1, "name=", name, "n2=", n2)
    fmt.Println("n3=", n3, "name2=", name2, "n4=", n4)
}

4、该区域的数据值可以在同一个类型范围内不断变化

5、变量在同一个作用域(一个函数或者代码块)内不能重名

6、变量=变量名+值+数据类型

7、变量如果没有赋值,编译器会使用默认值

int 默认值是0

string 默认值是空串

8、 := 结构不能使用在函数外。

9、也可以使用new来创建变量

package main

import "fmt"

func main() {
    p := new(int)
    fmt.Println("p addr =", p)
    fmt.Println("p value=", *p)
}

运行结果:

p addr = 0xc0000120b8
p value= 0

关于数值例子:

package main

import "fmt"

func main() {
    //该区域的数据值可以在同一个类型范围内不断变化
    var i int = 10
    i = 20
    i = 50
    //i = 1.2

    fmt.Println("i=", i)

    //变量在同一个作用域(一个函数或者代码块)内不能重名
    //var i int = 59
    // i := 99

    
}

变量的生命周期

栈空间

堆空间

如何判断变量是在栈空间还是在堆空间?

垃圾回收器 gc

-待补充

变量作用域

1.函数内部声明/定义的变量 叫局部变量,作用域仅限于函数内部

例子:

package main

import (
    "fmt"
)

func test() {
    //age和Name的作用域只在test函数内部
    age := 10
    Name := "tome"
}

func main() {
    fmt.Println("age=", age) //undefined
}

2.函数外部声明/定义的变量 叫全局变量

作用域在整个包都有效,如果 其首字母为大写 ,则作用域在整个程序有效

utils/utils.go

package utils

var age int = 50
var Name string = "jack"

main.go

package main

import (
    "fmt"
)

var age int = 50
var Name string = "jack"

func test() {
    //age和Name的作用域只在test函数内部
    age := 10
    Name := "tom"
    fmt.Println("age=", age)   //10
    fmt.Println("Name=", Name) //tom
}

func main() {
    // fmt.Println("age=", age) //50
    // fmt.Println("Name=", Name) //jack
    // test()

    fmt.Println("age=", utils.age)
    fmt.Println("Name=", utils.Name)
}

以上所述就是小编给大家介绍的《Go 语言学习笔记 -第2章 程序结构》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网的误读

互联网的误读

詹姆斯•柯兰(James Curran)、娜塔莉•芬顿(Natalie Fenton)、德 斯•弗里德曼(Des Freedman) / 何道宽 / 中国人民大学出版社 / 2014-7-1 / 45.00

互联网的发展蔚为壮观。如今,全球的互联网用户达到20亿之众,约占世界人口的30%。这无疑是一个新的现象,对于当代各国的经济、政治和社会生活意义重大。有关互联网的大量大众读物和学术著作鼓吹其潜力将从根本上被重新认识,这在20世纪90年代中期一片唱好时表现尤甚,那时许多论者都对互联网敬畏三分,惊叹有加。虽然敬畏和惊叹可能已成过去,然而它背后的技术中心主义——相信技术决定结果——却阴魂不散,与之伴生的则......一起来看看 《互联网的误读》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器