go语言之行--包与变量

前端之家收集整理的这篇文章主要介绍了go语言之行--包与变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<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.包引入的方法

方法一:

import

方法二:

import ; import

方法三(推荐!)

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)

内容如下:

import <span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"<span style="color: #000000;">

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进行引入如下:

import (
<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 <变量名称> <变量类型> = <表达式>   (简写为 变量名称 :=  表达式)

示例:

import <span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"<span style="color: #000000;">
func main() {

</span><span style="color: #0000ff;"&gt;var</span> a <span style="color: #0000ff;"&gt;string</span>  <span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; 声明一个变量名为a,类型为字符串的变量 </span><span style="color: #008000;"&gt;*/</span><span style="color: #000000;"&gt;
a </span>= <span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;wd</span><span style="color: #800000;"&gt;"</span>      <span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; 对a变量赋值</span><span style="color: #008000;"&gt;*/</span>
<span style="color: #0000ff;"&gt;var</span> age <span style="color: #0000ff;"&gt;int</span> = <span style="color: #800080;"&gt;22</span>  <span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; 声明并赋值变量 </span><span style="color: #008000;"&gt;*/</span><span style="color: #000000;"&gt;
fmt.Println(a,age)

}

2.多个变量声明

  • 先声明后赋值:var <变量1>,<变量2>,<变量3>  <变量类型>     赋值 : <变量1>,<变量2> =  值1,值2
  • 声明同时赋值 :var  <变量1>,<变量2> = 值1,值2   可简写为: <变量1>,值2
  • 多个变量还可以使用var()声明

示例:

import <span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"<span style="color: #000000;">
func main() {

</span><span style="color: #0000ff;"&gt;var</span> a,b <span style="color: #0000ff;"&gt;int</span><span style="color: #000000;"&gt;
a,b </span>= <span style="color: #800080;"&gt;1</span>,<span style="color: #800080;"&gt;2</span>
<span style="color: #0000ff;"&gt;var</span> c,d = <span style="color: #800080;"&gt;3</span>,<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;wd</span><span style="color: #800000;"&gt;"</span> <span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; 类型<a href="https://www.jb51.cc/tag/zidong/" target="_blank" class="keywords">自动</a>推断 </span><span style="color: #008000;"&gt;*/</span><span style="color: #000000;"&gt;
e,f :</span>= <span style="color: #800080;"&gt;4</span>,<span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;hello</span><span style="color: #800000;"&gt;"</span>  <span style="color: #008000;"&gt;/*</span><span style="color: #008000;"&gt; 简写 </span><span style="color: #008000;"&gt;*/</span><span style="color: #000000;"&gt;
fmt.Println(a,b,c,d,e,f)

}

使用var()声明

import <span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"<span style="color: #000000;">

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.变量名

命名原则:

  1. 首字符可以是任意的Unicode字符或者下划线
  2. 剩余字符可以是Unicode字符、下划线、数字
  3. 不能作为用以下关键字作为变量名
func defer go map package fallthrough import

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>

常量是一个简单值的标识符,在程序运行时,不会被修改的量。

常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

定义常量语法:

名称 类型 = value

多个常量定义语法:

= 自动推倒 b = =

iota解释:

iota,特殊常量,可以认为是一个可以被编译器修改的常量。

在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。

iota 可以被用作枚举值

===

第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0,b=1,c=2 可以简写为如下形式:

=

用法

import <span style="color: #800000;">"<span style="color: #800000;">fmt<span style="color: #800000;">"<span style="color: #000000;">

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)
}

原文链接:https://www.f2er.com/go/74463.html

猜你在找的Go相关文章