go语言中的 switch 可以一个条件一个分支
switch flag {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
}
可以多条件写一个分支
switch flag {
case 1:
fmt.Println("one")
case 2,3,4:
fmt.Println("two,three,four")
}
可以把判断条件写到case 后面 switch {
case flag == 1:
go 冒泡排序 & 选择排序 冒泡排序
将每一个数同相邻的下一个数对比,如果比下一个数大则交换位置.
func bubble(list []int) []int {
//用来拍断是否完成排序
flag := true
len := len(list)
for i := 0; i < len-1; i++ {
//预设没有发生交换 flag=true,当发生交换,flag=false
flag = true
for j := 0; j < len-1-i; j++ {
回顾 一.之前说到了go中如何实现类 传送门
二.go中如何实现类的封装 传送门
go 语言中如何实现继承 package main
import (
"fmt"
)
type people struct {
name string
age int
}
func (p people) GetName() string {
return p.name
}
type Student struct {
people
grade int
}
func (s Student) GetGrade() int {
return s.gr
go语言中默认用换行来表示语句结束,那么能不能用分号来代替换行呢?
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
main函数的左花括号必须在main同行,否则出错. 为什么go语言要这么玩呢? 这是为了在语言层面强制让所有使用者统一编程规范.
看看go圣经中的原话, 我来手动打一下: In effect, newlines following certain tokens are converted into semicolons, so where newline
list 个双链表(doubly linked list)
如何遍历链表,
其中 l 为 *List :
for e := l.Front(); e != nil; e = e.Next() {
//链表的每一个元素中通过Next()指针指向下一个元素,直至遍历完成
}
代码:
package main
import (
"fmt"
"container/list"
)
func main() {
l := list.New()
l.PushFront(1)
l. PushBack(2)
l. PushBack(3