Go语言基础--命名&变量&基本数据类型

命名规则

  1. go语言中的函数、变量、常量、类型、语句标签和包的名称遵循一个简单的规则:名称的开头是一个字母或者下划线,后面可以跟任意数量的字符/数字和下划线,并区分大小写。如heapSort和HeapSort是不同名称。
  2. 在命名时不能使用go语言语法中的保留关键字
  3. 函数名/变量名等 第一个字母的大小写决定其可见行是否跨包。如果名称以大写字母开头,它是导出的,意味者它对包外是可见的和可访问的,可以被包之外的其他程序所引用。
func main() {
	fmt.Println("hello world")		//Println()以大写字母开头,可以被外面的包调用
}
  1. 命名风格:当遇到由单词组合的名称时,Go程序员使用"驼峰式"的风格–更喜欢使用大小写而不是下划线。

GO变量

语法格式var name type = expression:

  1. var:代表声明一个变量
  2. name:变量名,十一哦那个驼峰式
  3. type:变量类型
  4. expression:变量表达式
  5. 类型与表达式部分可以省略一个,但是不能都省略。
    1. 类型省略,它的类型将由初始化表达式决定
    2. 表达式省略:其初始值对应于类型的零值:
      a. 对于数字是0,
      b. 对于布尔值是false,
      c. 对于字符串是"",
      d. 对于接口和引用类型(slice、指针、map、通道、函数)是nil。
      e. 对于一个像数组或者结构体这样的复合类型,零值是其所有元素或成员的零值。

常见的变量使用方式

/*单变量*/
var tmp int			//声明一个int类型的变量,省略初始值,初始值默认为0
var tmp int = 10	//声明+初始化值为10
var tmp = 10		//声明+初始化,省略类型,由编译器推导出类型
tmp := 10			//短变量声明方式,声明和初始化一个变量,一般在局部变量的声明和初始化使用这种

/*多变量*/
tmp1, tmp2, tmp3 := 1, 2, 3
var tmp1, tmp2, tmp3 = 1,2,3

/*短变量复制注意点*/
tmp := 10			
tmp, tmp1 := 11, 12	//短变量赋值时,需要保证左边至少有一个变量没有声明过

go常量

  1. 常量是一种表达式,其可以保证在编译阶段就计算出表达式的值,并不需要等到运行时,从而使编译器得以知晓其值。所以常量本质上都是属于基本类型:布尔值、字符串或数字。
  2. 语法格式:const name type = value,type可以省略,例如:const pi = 3.1415926
  3. 常量生成器iota:
    1. iota是一个可以改变的常量,在编译的过程中会被编译器修改的变量
    2. iota不是一个值,他可以创建一系列相关值,而不是逐个值现式写出。常量声明中,iota从0开始取值,逐项加1
  4. iota在time包中的使用
// A Weekday specifies a day of the week (Sunday = 0, ...).
type Weekday int

const (
	Sunday Weekday = iota			// 0
	Monday							// 1
	Tuesday							// 2
	Wednesday						// 3
	Thursday						// 4
	Friday							// 5
	Saturday						// 6
)

go基本数据类型

go语言同Java/C/C++一样是强类型语言,所以在使用时需要对变量表明具体的类型。

数字类型
整数
  1. int8:有符号8位整型(-128到127)
  2. int16:有符号16位整型(-32768 到 32767)
  3. int32:有符号32位整型(-2147483648 到 2147483647)
  4. int64:有符号64位整型(-9223372036854775808 到 9223372036854775807)
  5. uint8:无符号8位整型(0 到 255)
  6. uint16:无符号16位整型(0到65535)
  7. uint32:无符号32位整型(0 到 4294967295)
  8. uint64:无符号64位整型(0 到 18446744073709551615)
  9. rune类型是int32类型的同义词,常常用于指明一个值是Unicode码点(code point)
  10. byte类型是uint8类型的同义词,强调一个值是原始数据,而非量值
  11. uintptr类型是无符号整数,其大小不明确,但足以完整存放指针
浮点数
  1. float32:IEEE 754标准中的float32的大小,最大约为3.4e38
  2. float64:IEEE 754标准中的float64的大小,最大约为1.8e308
复数:
  1. complex64:由float32组成
  2. complex128:由float64组成
  3. var x complex128 = complex(1, 2) // 1 + 2i
布尔类型

bool型首位值或布尔值(boolean)只有2种可能:真(true)和假(false)
var isTrue bool = true

字符串
  1. 字符串是不可变的字节序列,它可以包含任意数据,包括0值字节
  2. 文本字符串被解读成按照UTF-8编码的Unicode码点(文本符号)序列。
  3. string底层其实就是一个[]byte(slice类型),并且可以直接跟[]byte类型互相转换(string本质就是一个字符流)
  4. 字符串中的字符是不能修改的,string是一个只读的类型,不能修改意味着两个字符串能安全地公用同一段底层内存,使的复制任何长度字符串的开销都很低廉
  5. 字符串的两种格式:
var str string = "123456"		//用于定义一个单行字符串
var str string = `hello	
			world`				//``用于定义一个多行的字符串,内部进行原样解析
  1. 字符串转译:
\a	"警告"或响铃
\b	退格符
\f	换页符
\n	换行符(直接跳到下一行的同一位置)
\r	回车符(值返回到行首)
\t	制表符
\v	垂直制表符
\'	单引号
\"	双引号
\\	反斜杠
  1. 字符串支持易用str[0] 数组下标的方式访问字符串中的单个元素
  2. 字符串支持使用+,进行字符串拼接
  3. 字符串和byte[] (字节slice)
    go语言中提供类4个标准包对字符串操作特别重要:bytes、strings、strconv和unicode。
    1. strings: 提供类了许多函数,用于搜索、替换、比较、修改、切片与链接字符串
    2. bytes:提供了与strings类似的函数,用于操作字节slice([]byte类型,其某些属性和字符串相同),由于字符串不可变,因此按增量方式构建字符串会导致多次的内存分配和复制。bytes.Buffer类型会更高效。
    3. strconv:包中的函数主要用于转换布尔值、整数、浮点数为与之对应的字符串形式,或者把字符串转换为布尔值、整数、浮点数,还有为字符串添加/去除引号的函数
    4. unicode:包备有判别文字符号值特性的函数,如IsDight、IsLetter、IsUpper和IsLower。
    5. 具体了解包中的所有函数与用法,可以参考go语言标准库文档中文版
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值