Go核心编程(4)—— 入门篇之指针、类型介绍和标识符命名规范

指针

基本介绍

1、基本数据类型,变量存的就是值,也叫值类型

2、获取变量的地址,用&,比如var num int,获取num的地址:&num

3、指针类型,变量存的是一个地址,这个地址指向的空间存的才是值,比如:var ptr *int = &num

4、获取指针类型所指向的值,使用:*,比如:var *ptr int,使用 *ptr获取p只想的值

5、举例说明

package main
import (
	"fmt"
)

func main (){
	var i int = 10
	//i的地址是什么,&i
	fmt.Println("i的地址=", &i)

	//下面的var ptr *int = &i
	//1.ptr是一个指针变量
	//2.ptr的类型 *int
	//3.ptr本身的值 &i
	var ptr *int = &i
	fmt.Printf("ptr=%v\n", ptr)
	fmt.Printf("ptr的地址=%v\n", &ptr)
	fmt.Printf("ptr指向的值=%v", *ptr)

}

指针变量在内存中的内存布局

在这里插入图片描述

使用案例

package main
import (
	"fmt"
)

func main (){
	
	var num int = 1
	fmt.Printf("num的地址=%v\n",&num)

	var ptr *int 
	ptr = &num
	*ptr = 2  //此处修改了Num的值
	fmt.Printf("num的值=%v\n",num )

}

指针细节说明

1、 值类型都有对应的指针类型,表达式为数据类型,比如int的对应指针类型是int

2、 值类型包括:基本数据类型int、float、bool、string、数组和结构体struct

值类型和引用类型

值类型和引用类型的说明

1、值类型:基本数据类型int、float、bool、string、数据和结构体struct

2、引用类型:指针、slice切片、map、管道chan、接口interface等都是引用类型

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

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

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

标识符的命名规范

标识符概念

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

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

标识符的命名规则

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

2、数字不可以开头

3、Go中严格区分大小写

4、标识符不能包含空格

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

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

标识符命名注意事项

1、包名:保持package的名字和所在目录文件夹保持一致,尽量采取有意义的包名,简短,有意义,不要和标准库冲突

2、变量名、函数名、常量名:采用驼峰法

3、如果变量名、函数名、常量名首字母大写,则可以被其他的包访问;如果首字母小学,则只能在本包中使用(首字母大写是公有的,首字母小写是私有的)

系统保留关键字

在Go中,为了简化代码编译过程中对代码的解析

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

预定义标识符

除了保留关键字以外,Go还提供了36个预定义标识符,其中包括技术出具类型和系统内嵌函数

appendboolbytecapclosecomplex
complex64complex128uint16copyfalsefloat32
float64imagintint8int16uint32
int32int64iotalenmakenew
nilpanicuint64printprintlnreal
recoverstringtrueuintuint8uintprt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值