摘要:
1.基础定义 在基础语法篇提到过golang的rune相当于其他编程语言的char,其本质是一个int32(四字节),用[]rune来转换一个字符串时,得到的是个解码后的结果,存储在新开辟的[]rune空间中,而不是对原字符串进行'解释' 对[]byte进行解码需要用到utf8包中的DecodeRu 阅读全文
摘要:
1.基础定义 golang中的map如同它的函数一样"纯粹",map就是用来存储键值对的容器,别管什么哈希不哈希的(底层已实现),用就行 2.特性和操作 由于底层实际是HashMap,所以遍历出来的结果是'无序'的 取值时,如果key不存在,那么会得到value的变量类型初始值 在'buildin. 阅读全文
摘要:
1.基础定义 看到'切片'二字,满脸懵逼。切的啥?用的什么刀法切?得到的切片有什么特点?可以对切片进行什么操作? 先看怎么得到切片,也就是前两个问题。切片的底层是数组,所以切片切的是数组;切的时候采用半开半闭(取左舍右)的刀法,如同其他语言截取操作的规则 我们想得到一个东西不一定非得自己动手做,有很 阅读全文
摘要:
1.基础定义 声明时数组长度在数组成员类型前 语法:var variableName [length]int 2.数组是值类型 golang中,数组是值类型的。表现为:[5]int、[6]int是不同的数据类型;用数组作为参数时会拷贝数组(符合golang的传参规范)。由于这个特性带来的不便利,一般 阅读全文
摘要:
1.基础定义 golang的指针没有cpp等语言的指针复杂,具体表现在其不可用于运算、只有值传递 语法:var variableName \ int = memoryAddr 2.指针类型转换 golang中不同类型的指针间不能相互转换,例:\ int、\ int32、\ int64 3.只有值传递 阅读全文
摘要:
1.基础定义 golang的函数很'纯粹',只有可变参数列表的概念,没有默认参数、可选参数、函数重载、操作符重载这些难以把控的概念 语法:'func'声明,而后函数名在前,中间的括号内定义参数,返回值类型在最后 2.多个返回值 golang的函数可以返回多个值,定义函数时将多个返回值类型用','分隔 阅读全文
摘要:
1.基础定义 for语句的条件不需要括号(同if语句) ,golang里的循环只有for,没有while 阅读全文
摘要:
1.if else 语句 if语句后面的条件不需要括号 'if'之后,条件判断之前,可以初始化变量(作用域为整个if语句),用';'分隔,类似其它语言的for语句 2.switch语句 golang中的switch,case语句无需写'break' 'switch'后可以没有表达式,在case里面写 阅读全文
摘要:
1.常量定义 用const关键字修饰常量名并赋值,常量命名不同于java等语言,golang中一般用小写,因为在golang中首字母大写表示public权限 2.常量使用 使用数值常量进行运算时不需要进行强制类型转换,编译器会自动识别 3.枚举类型 golang没有特殊的关键字表示枚举,直接用con 阅读全文
摘要:
1.内建变量一览 bool,string (u)int,(u)int8,(u)int16,(u)int32,(u)int64,uintptr 无长度int的实际长度取决于操作系统位数(32/64) uintptr为指针类型 byte,rune rune相当于其他语言的char,长度为int4(32位 阅读全文