05 2022 档案
摘要:一、defer关键字 1.defer关键字定义了在当前函数生命周期结束之前触发的一种机制,类似于C++中的析构函数,Java中的final关键字。如在main函数中定义: defer fmt.Println("end"),表示会在main函数结束前输出end。 2.defer可在同一函数体中定义多个
阅读全文
摘要:一、全局变量和局部变量的特点 1.全局变量:定义在全局中,常驻内存,可能会污染全局。 2.局部变量:定义在方法中,不常驻内存,不污染全局。 3.闭包的作用:使变量常驻内存且不污染全局。 二、闭包 1.闭包是指:有权访问另一个函数作用域中的变量的函数。 2.创建方法:在一个函数内部创建另一个函数,通过
阅读全文
摘要:一、通常的实现方法 实现sort.Interface接口中的3个方法:Len方法、Less方法以及Swap方法,即可通过调用sort包中的Sort方法实现结构体数组的排序。(二维数组可以类比为结构体数组)其中: (1)Len方法表示获取该数组的长度,通常返回len方法返回值。 (2)Less方法表示
阅读全文
摘要:一、pair 1.在go语言中,每个变量类型都是静态的,即在创建的时候类型就已经确定,只有interface变量有反射一说。 2.每个interface变量都有一个对应的pair,其中记录了实际变量的值和类型:<value, type>。 3.当给变量赋值给其他变量时,对应的pair不发生改变。 二
阅读全文
摘要:一、struct 结构体 1.使用type关键字可以定义新的数据类型。 2.定义结构体,如: type Book struct{ title string author string } 3.定义并使用结构体变量:var book1 Book,book1.title = "abcd",book1.a
阅读全文
摘要:一、固定长度数组 1.定义长度固定的数组,如:var arr [10] int;获取数组的长度,使用len函数,即len(arr)。 2.定义长度固定的数组,且初始化,如:arr := [10] int {1,2,3,4}。 3.使用for循环遍历数组,如:for i := 1; i < len(a
阅读全文
摘要:一、先序遍历 顺序为:根节点、左节点、右节点。使用栈来完成递归过程,注意先放右子节点,再放左子节点。 public List<Integer> preOrder(TreeNode root){ List<Integer> ans = new ArrayList<>(); if(root == nul
阅读全文