教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go基础编程:变量、常量、命名

Go基础编程:变量、常量、命名

发布时间:2022-01-04   编辑:jiaochengji.com
教程集为您提供Go基础编程:变量、常量、命名等资源,欢迎您收藏本站,我们将为您提供最新的Go基础编程:变量、常量、命名资源
<h4>变量</h4><blockquote>概念:变量是编程语言的最基本的组成元素,是一种占位符,用于引用计算机内存地址,可以存储计算结果或能表示结果,在程序运行期间内容<code>改变</code>的量。</blockquote><h4>变量类型</h4><blockquote>Go语言变量可以分为值类型和引用类型两种类型。
值类型:包含 int、float、bool、string ,变量直接存储值,内存通常在栈中分配,栈在函数调用完会被释放。
引用类型:有slice、map、chan、struct、interface、指针和函数,变量存储的是地址,这个地址对应的空间才是真正的存储数据,内存分配一般在堆上,通过GC回收。</blockquote><h4>变量声明</h4><blockquote><code>var声明</code>
用关键字var 后面变量名称 变量类型,如:</blockquote><pre><code class="lang-go hljs">//指定变量名和值,类型由推导器推导 var age = 20 //指定变量名和类型 var age int //指定变量名、类型和值 var age int = 20</code></code></pre><blockquote>一次定义多个变量</blockquote><pre><code class="lang-go hljs">var a,b string var c,d int var ( e int f string ) var a, b, c = 5, "hello", 3.45</code></code></pre><blockquote><code>短声明</code>
短声明是根据值推导具体的类型,省略<code>var</code>,左边使用 <code>:=</code>,注意<code>:=</code>不能分开必须写在一起,如下:</blockquote><pre><code class="lang-go hljs">age:=20 //age为int型 money:=100.00 //float64 name:="名称" //string</code></code></pre><blockquote>通过这个特性可以赋值交换</blockquote><pre><code class="lang-go hljs">i,j=j,i</code></code></pre><blockquote><code>:=</code>声明变量时不需要每个变量都是新的,但至少需要一个是新的</blockquote><pre><code class="lang-go hljs">err:=errors.New("我是错误") f,err:=os.Open("a.text")</code></code></pre><blockquote>只能用于局部变量,不能用于全局变量</blockquote><pre><code class="lang-Go hljs">package main a := "全局变量" //syntax error: non-declaration statement outside function body func main(){ b := "局部变量" }</code></code></pre><blockquote>注意不能和结构体成员一起使用</blockquote><pre><code class="lang-go hljs">package main import "fmt" type User struct { Name string } func main() { var user User user.Name, a := "aad", 1515 //non-name user.Name on left side of := fmt.Println(user, a) }</code></code></pre><h4>变量作用域</h4><blockquote><ul><li>定义函数外的变量称为<code>全局</code>变量</li><li>定义函数内的变量称为<code>局部</code>变量</li></ul></blockquote><h5>全局变量</h5><blockquote>全局变量也可以叫做包变量,定义在函数体外的变量,他的生命周期是常驻内存直到程序结束,由系统GC回收,下面的name、age是全局变量:</blockquote><pre><code class="lang-go hljs">package main import ( "fmt" ) //定义在函数体外 var name = "小明" var age = 25 func main() { fmt.Println(name, age) } </code></code></pre><h5>局部变量</h5><blockquote>局部变量是定义在函数体内的变量,他们的作用域都在函数体内,函数的参数、返回值、以及<code>{}</code>里面的参数都属于局部变量,他们的生命周期是没执行一次就新创建一个实例,直到无不可访问(函数结束)。下面的name、age都是局部变量:</blockquote><pre><code class="lang-go hljs">package main import ( "fmt" ) func main() { //定义在函数体内 name := "小明" var age = 25 fmt.Println(name, age) }</code></code></pre><blockquote>定义在函数括号后面的参数叫做形式参数,只有在函数调用在起作用,函数结束会被销毁,不占用实际的存储单元,也没有实际值。下面的name是形式参数:</blockquote><pre><code class="lang-go hljs">package main import ( "fmt" ) func main() { var str = "小明" getName(str) } func getName(name string) { fmt.Println(name) }</code></code></pre><blockquote>如果变量是在一个<code>代码块</code>,比如 for / if 中,那么这个变量的的<code>作用域就在该代码块</code>,如下面name变量地址在每次循环都是不一样的</blockquote><pre><code class="lang-go hljs">package main import ( "fmt" ) func main() { for i := 0; i < 3; i { var name = "小明" fmt.Printf("name 变量地址 = %p\n", &name) } } name 变量地址 = 0xc0000361d0 name 变量地址 = 0xc0000361e0 name 变量地址 = 0xc0000361f0</code></code></pre><h4>常量</h4><blockquote>常量使用关键字<code>const</code> 声明,常量一旦声明就<code>无法改变</code>
常量的数据类型只能是数字型(整数型、浮点型和复数)、布尔型(bool)、字符串型(string)
定义格式 const t_name [type] = value,例如:</blockquote><pre><code class="lang-go hljs">const PI = 3.14 const NAME string = "哈皮" </code></code></pre><h4>命名规范</h4><h5>Go是一门区分大小写的语言。</h5><blockquote>必须以字符(可以使用任何 UTF-8 编码的字符或 <code>_</code>)开头,然后紧跟着 0 个或多个字符或 Unicode 数字,如:X56、group1、_x23、i、өԑ12
以下无效标识符:</blockquote><ul><li>1ab(以数字开头)</li><li>case(Go 语言的关键字)</li><li>a b(运算符是不允许的)</li></ul><h5>包名称</h5><blockquote>包名不要求和目录保持一致,但同一目录下的包名必须一样,通常都是保持和一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突</blockquote><h5>文件命名</h5><blockquote>尽量采取有意义的文件名,简短,有意义,应该为小写单词,使用下划线分隔各个单词,其中测试文件以<code>_test.go</code>结尾,除测试文件外,如:
user.go
user_test.go</blockquote><h5>变量命名</h5><blockquote>变量命名一般采用驼峰式,当遇到特有名词(缩写或简称,如DNS)的时候,特有名词根据是否私有全部大写或小写,如:
UserName
passWord</blockquote><h5>结构体命名</h5><blockquote>采用驼峰命名法,首字母大、小写可以控制访问权限、大写对外暴露、包外可访问、小写只能包内访问</blockquote><h3>Go 关键字</h3><blockquote>键字不能够作标识符使用</blockquote><pre><code class="lang-go hljs">break default func interface select case defer map struct chan else goto package switch const fallthrough if range type continue for import return var</code></code></pre>
到此这篇关于“Go基础编程:变量、常量、命名”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go 零基础编程入门教程
GO语言零基础从入门到精通视频教程
Go基础编程:变量、常量、命名
Go语言笔记--基础(一)
Go语言发展历史、核心、特性及学习路线
每天一点Go语言——变量、常量、运算符解析
go编程基础
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
php变量与常量-php入门教程(2)
golang基础教程

[关闭]
~ ~