Go学习笔记(十)基础遗漏整理。
来源:互联网 发布:淘宝看不到自己的评价 编辑:程序博客网 时间:2024/06/08 07:45
1 导包可以加入别名
import std “fmt” 之后程序可以调用 std. 代替fmt。这样会防止包名重复。
2 数据类型 byte(等同于uint8) rune(等于int32)
3“strconv”包下 int=》string;string=》int;
//int=》string strconv.Itoa(a) //string=》int strconv.Atoi(b)
4常量用 const 声明。 大写
5运算符:&^
/* 6: 0110 11:1011 ------- &^ 0100 (如果下面的位数是1则需要强行改成0,否则不对第一个书进行操作) */
6 循环:标签和goto结合使用,标签放在goto语句后面避免死循环。
7. 数组:
a := [20]int[19:1] //(即将索引为19的赋值为1)
数组可以进行比较 ==或者!= 需要类型和长度相同才能进行比较。
8.冒泡排序
// BubbleSort project 冒泡排序package mainimport ( "fmt")func main() { //数组定义是大括号, a := [5]int{5, 2, 6, 3, 9} fmt.Println(a) lenth := len(a) for i := 0; i < lenth; i++ { for j := i + 1; j < lenth; j++ { if a[i] < a[j] { temp := a[i] a[i] = a[j] a[j] = temp } } } fmt.Println(a)}
9. Slice切片:copy(s1,s2)以长度短的为准。append追加切片,长度超过,重新分配内存地址。切片取数组中的一部分如果长度不超过,修改其中一个数组,取出来的数值也会变。
10. map嵌套map时需要每一层map都要初始化。
for i,v:=rang slice{} //i 是索引或者key
11 函数function
func A() (int,int,int){ //第二个小括号内是返回类型}func B(B ... int){ //不定长变参必须是最后一个参数。}
- 如果传递的是slice类型的在函数内部修改slice的,外部的slice 也被修改了。如果传入的是int,string 等这种值传递不影响外部。如果传递指针类型的话,就改变原始值。
闭包的作用是:返回一个匿名函数- defer 后定义的先调用,逆序向上调用
- 没有异常机制,有Panic/recover模式来处理错误。
- Panic可以在任何地方引发,但是recover只有在defer调用的函数中有效;Panic运行之后之后就不运行了。defer func(){ recover}放在Panic之前。
package mainimport ( "fmt")func main() { A() B() C()}func A() { fmt.Println("func a")}func B() { defer func() { if err := recover(); err != nil { fmt.Println("recover in b") } }() panic("func b")}func C() { fmt.Println("func c")}
匿名结构
a := &struct { //取地址 Name string Age int }{ Name: "hif", Age: 10, }
匿名字段
type nimingstring struct { string int } //初始化的时候必需对应I s := nimingstring{"sad", 1}
组合结构(结构的嵌入)
type human struct { Sex int}type teacher struct { human Name string Age int}type student struct { human Name string Age int} //初始化 t := teacher{Name: "as", Age: 2, human: human{Sex: 1}} st := student{Name: "aasasasas", Age: 22, human: human{Sex: 0}} t.Sex = 1
可能遇到的问题
- 导包 尽量写绝对路径
- slice特性是指向地址。但是写方法对slice进行处理,为了避免指向地址变了,写上返回值。
- time包。自定义时间类型,Format(常量或者api内部类型(全复制))。禁止修改,会影响结果。
- for range和闭包的坑:不作为参数传递的都是引用地址的传递。需要作为参数传递(进行值拷贝传递)。
在线网站:
- github基础学习代码连接
- go步行者(暂测打不开)
- Go学习基础视频(无闻)
疑问? 闭包的概念
阅读全文
0 0
- Go学习笔记(十)基础遗漏整理。
- 笔记整理(java基础十----集合)
- GO语言学习整理笔记
- 十四周遗漏题----整理字符串
- Go学习笔记-go语言基础
- Go 基础语言学习笔记
- HeadFirstC笔记_13 十大遗漏知识点
- go语言学习笔记(一)基础的基础篇
- 黑马程序员-----笔记整理(java基础十----集合)
- HTML5基础学习笔记(十)
- HTML5基础学习笔记(二十)
- JAVA学习笔记整理十(网络编程)
- Go基础语法整理
- go学习(十)——Go 语言范围(Range)
- Go学习笔记之基础数据类型
- go语言 基础编程学习笔记
- GO 学习笔记 一基础篇
- Go语言基础语法学习笔记[1]
- python学习笔记
- oracle关联查询与子查询例子
- 七月算法-机器学习第0讲笔记
- Oracle数据库结构化查询语言和Oracle数据库数据类型
- node js连接mongodb数据库
- Go学习笔记(十)基础遗漏整理。
- 【剑指offer-解题系列(18)】树的镜像
- rsync同步文件
- sass 小案例
- TDD,BDD,DDD,XP,Scrum,Kanban,Design Thinking等名词解释
- python——大智慧--三重指数平滑--TRIX
- Ubuntu系统安装网卡驱动
- Caffe使用:如何将一维数据或其他非图像数据转换成lmdb
- 找二进制表示中1的数量的方法