<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">一、包的概念</td>
</tr></table>
包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方式是:package "包名",并且该名称是作为调用该包时候所使用的名称。
包的概念总结:
- 每个 Go 文件都属于且仅属于一个包。一个包可以由许多以
.go
为扩展名的源文件组成,因此文件名和包名可能不同,为了规范,功能相似或者属于相同性质的源码归集到相同的包名中。 - 每个应用程序都必须有且只有一个包名称为main,他是该程序的入口,执行时候会寻找包名为main的代码
- 包与包之间可以被相互调用,主要为了减少代码重复性
- 包一旦被引入就需要被使用,除非引入的时候忽略它(前面加_表示忽略它,只是用它来初始化),如果引入了包,而在代码中没用使用,运行时候会报错
<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">二、包的引入</td>
</tr></table>
1.包引入的方法
方法一:
方法二:
方法三(推荐!)
2.引入其他包
go语言中,引入包的路径是根据GOPATH/src 这个环境变量作为相对路径进行引入的,如果GOPATH存在多个,那么go将逐一寻找路径,直到找到,若GOPATH/src未找到则编译出错。
示例:
我的GOPATH为:C:\Users\17647\Desktop\go_work\src
首先建立包文件1:C:\Users\17647\Desktop\go_work\src\day02\eg1\pkg.go(相对于GOPATH/src的路径为day02\eg1\pkg.go)
内容如下:
func Sum(a <span style="color: #0000ff;">int,b <span style="color: #0000ff;">int<span style="color: #000000;">) {
<span style="color: #0000ff;">var c <span style="color: #0000ff;">int<span style="color: #000000;">
c = a +<span style="color: #000000;"> b
fmt.Println(<span style="color: #800000;">"<span style="color: #800000;">res<span style="color: #800000;">"<span style="color: #000000;">,c)
}
在main进行引入如下:
<span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"
<span style="color: #800000;">"<span style="color: #800000;">day02/eg1<span style="color: #800000;">" <span style="color: #008000;">/<span style="color: #008000;"> 引入包 <span style="color: #008000;">/<span style="color: #000000;">
)
func main() {
add.Sum(<span style="color: #800080;">2,<span style="color: #800080;">3) <span style="color: #008000;">/<span style="color: #008000;"> 调用包 <span style="color: #008000;">/<span style="color: #000000;">
fmt.Println(<span style="color: #800000;">"<span style="color: #800000;">Hello,World!<span style="color: #800000;">"<span style="color: #000000;">)
}
图示:
<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">二、变量</td>
</tr></table>
1.单个变量的声明
go语言中,所有变量都必须先声明在使用,下面是声明变量和赋值方法:
- 先声明后赋值: var <变量名称> <变量类型> 赋值:变量的赋值格式: <变量名称> = <表达式>
- 声明的同时赋值:var <变量名称> <变量类型> = <表达式> (简写为 变量名称 := 表达式)
示例:
func main() {
</span><span style="color: #0000ff;">var</span> a <span style="color: #0000ff;">string</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 声明一个变量名为a,类型为字符串的变量 </span><span style="color: #008000;">*/</span><span style="color: #000000;">
a </span>= <span style="color: #800000;">"</span><span style="color: #800000;">wd</span><span style="color: #800000;">"</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 对a变量赋值</span><span style="color: #008000;">*/</span>
<span style="color: #0000ff;">var</span> age <span style="color: #0000ff;">int</span> = <span style="color: #800080;">22</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 声明并赋值变量 </span><span style="color: #008000;">*/</span><span style="color: #000000;">
fmt.Println(a,age)
}
2.多个变量声明
- 先声明后赋值:var <变量1>,<变量2>,<变量3> <变量类型> 赋值 : <变量1>,<变量2> = 值1,值2
- 声明同时赋值 :var <变量1>,<变量2> = 值1,值2 可简写为: <变量1>,值2
- 多个变量还可以使用var()声明
示例:
func main() {
</span><span style="color: #0000ff;">var</span> a,b <span style="color: #0000ff;">int</span><span style="color: #000000;">
a,b </span>= <span style="color: #800080;">1</span>,<span style="color: #800080;">2</span>
<span style="color: #0000ff;">var</span> c,d = <span style="color: #800080;">3</span>,<span style="color: #800000;">"</span><span style="color: #800000;">wd</span><span style="color: #800000;">"</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 类型<a href="https://www.jb51.cc/tag/zidong/" target="_blank" class="keywords">自动</a>推断 </span><span style="color: #008000;">*/</span><span style="color: #000000;">
e,f :</span>= <span style="color: #800080;">4</span>,<span style="color: #800000;">"</span><span style="color: #800000;">hello</span><span style="color: #800000;">"</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 简写 </span><span style="color: #008000;">*/</span><span style="color: #000000;">
fmt.Println(a,b,c,d,e,f)
}
使用var()声明
func main() {
<span style="color: #0000ff;">var<span style="color: #000000;"> (
a <span style="color: #0000ff;">int <span style="color: #008000;">//<span style="color: #008000;">默认值为0
b <span style="color: #0000ff;">string <span style="color: #008000;">//<span style="color: #008000;"> 默认值为空字符串("")
c = <span style="color: #800080;">3<span style="color: #000000;">
)
fmt.Println(a,c)
}
3.变量名
命名原则:
- 首字符可以是任意的Unicode字符或者下划线
- 剩余字符可以是Unicode字符、下划线、数字
- 不能作为用以下关键字作为变量名
4.可见性
可见性即对包外可见,当其他包调用当前包的变量时候是否允许可见(可访问)。
- 变量开头字符大写,表示可见
- 变量开头字母非大写,则表示私有,不可见
5.变量的作用域
<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">
<tr><td><span style="font-size: 16px;">三、常量</td>
</tr></table>
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
定义常量语法:
多个常量定义语法:
iota解释:
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
iota 可以被用作枚举值:
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0,b=1,c=2 可以简写为如下形式:
用法:
func main() {
<span style="color: #0000ff;">const<span style="color: #000000;"> (
a = iota <span style="color: #008000;">//<span style="color: #008000;">0
b <span style="color: #008000;">//<span style="color: #008000;">1
c <span style="color: #008000;">//<span style="color: #008000;">2
d = <span style="color: #800000;">"<span style="color: #800000;">ha<span style="color: #800000;">" <span style="color: #008000;">//<span style="color: #008000;">独立值,iota += 1
e <span style="color: #008000;">//<span style="color: #008000;">"ha" iota += 1
f = <span style="color: #800080;">100 <span style="color: #008000;">//<span style="color: #008000;">iota +=1
g <span style="color: #008000;">//<span style="color: #008000;">100 iota +=1
h = iota <span style="color: #008000;">//<span style="color: #008000;">7,恢复计数
i <span style="color: #008000;">//<span style="color: #008000;">8
<span style="color: #000000;"> )
fmt.Println(a,f,g,h,i)
}