GO学习之 值类型与引用类型

一.值类型和引用类型

1.常见的值类型和引用类型

1)值类型:基本数据类int系列,float系列,bool,string,数组和结构体struct

2)引用类型:指针,slice切片,map,管道chain,interface

2.值类型和引用类型使用特点

1)值类型:变量直接存储值,内存通常在栈中分配

2)引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。

二.标识符的命名规范

1.标识符的概念

1Golang 对各种变量、方法等命名时使用的字符序列称为标识符。

2)凡是自己可以起名字的地方都叫标识符

2.标识符的命名规则

1)由26个英文字母大小写,0-9_组成

2)数字不可以开头

3Golang中严格区分大小写

4)标识符不能包含空格

5)下划线”_”本身在Go中是一个特殊的标识符,称为空标识符。可以代表其他任何标识符,但是它对应的值会被忽略(比如:忽略某个返回值)。所以仅能被作为占位符使用,不能作为标识符使用。

6)不能以系统保留关键字作为标识符,比如:break,if 等等

3.标识符的命名注意事项

1)包名:保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,不要和标准库不要冲突。

2)变量名、函数名、常量名;采用驼峰法(第一次单词首字母小写,其他单词开始的第一个字母的大写)

3如果变量名、函数名、常量名首字母大写,则可以被其他的包访问;如果首字母小写,

则只能在本包中使用(注:可以简单的理解成,首字母大写是公开,首字母小写私有的)

变量名首字母没有大写不可导入的例子:

正确使用的例子如下:

首先是目录截图:

然后是model.go代码内容如下:

package model

// 定义了一个变量
var heroName string = "hsz"
var HeroName string = "hsz"

再就是main.go的代码:

package main

import(
    "fmt"
    // 为了使用model.go文件的变量或者函数,我们需要先引入该包
    "gotest01/chapter_03/demo_standdard/model"
)

func main()  {
    // 使用model.go文件的变量的heroName
    fmt.Println(model.HeroName)
}

最后运行打印成功。

4.系统保留关键字

GO中,为了简化代码编译过程中对代码的解析,其定义的保留关键字只有25个。详见:

break,default,func,interface,select,case,defer,go,map,struct,chan,else,goto,package,switch,const,fallthrough,if,range,type,continur,for,import,return,var

5.预定标识符

除了保留关键字外,Go还提供了36个预定的标识符,其包括基础数据类型和系统内嵌函数。

append, bool, byte, cap, close, complex

complex64, complex128, uint16, copy, false, float32

float64, imag, int, int8, int16, uint32,

int32, int64, iota, len, make, new,

nil, panic, uint64, print, println, real,

recover, string, true, uint, uint8, uintprt

原文地址:https://www.cnblogs.com/hszstudypy/p/12500835.html