加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

go语言之行--包与变量

发布时间:2020-12-16 19:34:38 所属栏目:大数据 来源:网络整理
导读:table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0" tr tdspan style="font-size: 16px;" 一、包的概念 /td /tr /table 包是go语言中不可缺少部分,在每个go源码的第一行进行定义,定义方式是:package "
<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:Users17647Desktopgo_worksrc

首先建立包文件1:C:Users17647Desktopgo_worksrcday02eg1pkg.go(相对于GOPATH/src的路径为day02eg1pkg.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; 类型自动推断 </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)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

<table style="height: 30px; background-color: #afeeee; width: 1266px; ; width: 1266px;" border="0">

    推荐文章
      热点阅读