Go Tip02 指针类型 、值类型和引用类型 、标识符的命名规范

文章目录

      • 一、指针类型
      • 二、值类型和引用类型
      • 三、标识符的命名规范

一、指针类型

package main

import "fmt"

func main() {
	saylocation()

}

func saylocation() {
	//	指针类型
	// 基本数据类型,变量存的是值
	// 用&获取变量的地址
	//	基本数据类型在内存的布局
	var i int = 10

	fmt.Println("地址", &i)
	// 指针类型变量存的是一个地址
	// 获取指针类型所指向的值,使用*
	var ptr *int = &i
	i = 5
	fmt.Println(ptr, *ptr, &i)

}

二、值类型和引用类型

1、值类型
变量直接存储值,内存通常在栈中分配
基本数据类型int系列、float系列、boolstring、数组和结构体struct
2、引用类型
变量存储的是一个地址,这个地址对应的空间才真正存储数据的值,内存通常在堆上分配,当没有任何变量引用这个地址时,该地址对应的数据空间就成为一个垃圾
由GC来回收
指针、slice切片、map、管道chaninterface引用类型

三、标识符的命名规范

Golang对各种变量、方法、函数等命名时使用的字符序列就是标识符
凡是可以自己取名的地方都交标识符

标识符的命名规则
1、由16个英文字母大小写、0-9_组成
2、不可以数字开头
3、Golang中严格区分大小写
4、标识符不可以包含空格
5、下划线本身在Go中就是个特殊的标识符,称为空标识符,可以代表任何其他的标识符,但是他对应的值会被忽略,只可以作为一个占位符
6、不能以系统保留关键字作为标识符

保留关键字:
break		default		func	interface	select
case		defer		go		map			struct
chan		else		goto	package		switch
const		fallthrough	if		range		type
continue	for			import	return		var

命名的注意事项
1、包名
保持package的名字和目录一致,尽量采取有意义的包名,简短有意义
2、变量名、函数名、常量名
驼峰法
3、如果变量名、函数名、常量名首字母大写,则可以被其他的包访问;如果首字母小写则只能在本包内访问
可以理解为
首字母大写是公有的
首字母小写是私有的
package main

import (
	"Godemo1/model"
	"fmt"
)

func main() {
	saylocation()
	model.Sayhelo()
}

func saylocation() {
	//	指针类型
	// 基本数据类型,变量存的是值
	// 用&获取变量的地址
	//	基本数据类型在内存的布局
	var i int = 10

	fmt.Println("地址", &i)
	// 指针类型变量存的是一个地址
	// 获取指针类型所指向的值,使用*
	var ptr *int = &i
	i = 5
	fmt.Println(ptr, *ptr, &i)

}
package model

import "fmt"

func Sayhelo() {
	fmt.Println("hello")

}

你可能感兴趣的:(Go,golang,开发语言,后端)