Go基础-控制流程、函数、方法
if 语句
func main() { // age := 18 // if age <= 18 { // fmt.Println("少年") // } else if age >= 18 && age <= 30 { // fmt.Println("青年") // } else { // fmt.Println("老年") // } // 特殊写法 此种方式if 外面访问不了age if age := 18; age <= 18{ fmt.Println("少年") }else if age >= 18 && age <= 30 { fmt.Println("青年") } else { fmt.Println("老年") } }
for 语句
func main() { //基本格式 for i := 0; i < 10; i++ { // fmt.Println(i) } // var i = 5 // for ; i < 10; i++{ // // fmt.Println(i) // } // var i = 5 // for i < 10 { // fmt.Println(i) // i++ // } //for range 循环 // s := "Hello,世界" // for i, v := range s { // // fmt.Println(i,v) // fmt.Printf("%d %c\n", i, v) // } //九九乘法表 // for i := 1; i < 10; i++ { // for j := 1; j <= i; j++ { // fmt.Printf("%d*%d=%d\t", j, i, j*i) // } // fmt.Println("") // } //跳出循环 // for i:= 0;i <10;i++{ // fmt.Println(i) // if i == 5 { // break; // } // } //跳过i=5的此次循环 for i := 0; i < 10; i++ { if i == 5 { continue } fmt.Println(i) } }
switch语句
func main() { // var n = 5 // switch n { // case 1: // fmt.Println("1") // case 2: // fmt.Println("2") // case 3: // fmt.Println("3") // case 4: // fmt.Println("4") // case 5: // fmt.Println("5") // default: // fmt.Println("错误输入") // } switch n := 2; n { case 1, 3, 5, 7, 9: fmt.Println("奇数") // fallthrough // 满足了该条件继续执行下一个条件 case 2, 4, 6, 8, 10: fmt.Println("偶数") default: fmt.Println("超出了我的范围") } }
函数示例
func f1(x int, y int) { fmt.Println(x + y) } func f2() { fmt.Println("") } func f3() int { return 1 } func f4(x int, y int) (ret int) { return ret } func f5(x, y int) int { return x + y } //可变参数,y可以传1,2,3 func f6(x string, y ...int) { fmt.Println(y) } //多个返回值 func f7() (name string, age int) { return name, age } func main() { f6("张三", 50, 60, 70) }
方法示例
//结构体 类似model type person struct { name string age int idno string } //当结构体比较大的时候尽量使用结构体指针,减少程序内存开销 func newPerson(name string, age int, idno string) *person { return &person{ name: name, age: age, idno: idno, } } //方法是作用在特定类型的函数 //(p person) 调用方法的接收者 func (p person) getIDNo() { fmt.Printf("%s的身份证是", p.idno) } func main() { p1 := newPerson("张三", 18, "31000012131313x") fmt.Printf("%T\n", p1) //*main.person p1.getIDNo() }