package main
import (
	"fmt"
	"os"
	"strconv"
)
func main() {
	//常规结构
	for i := 0; i < 10; i++ {
		fmt.Print(i)
		fmt.Print(" ")
	}
	fmt.Print("\n")
	//仅判断条件
	i := 0
	for i < 10 {
		fmt.Print(i)
		fmt.Print(" ")
		i++
	}
	fmt.Print("\n")
	//极简结构
	i = 0
	for {
		if i >= 10 {
			break
		}
		fmt.Print(i)
		fmt.Print(" ")
		i++
	}
	fmt.Print("\n")
	//对集合类型的操作
	//range关键字是对集合进行遍历
	for index, value := range os.Args {
		fmt.Println(strconv.Itoa(index) + "-->" + value)
	}
} 
输出
0 1 2 3 4 5 6 7 8 9 
 0 1 2 3 4 5 6 7 8 9 
 0 1 2 3 4 5 6 7 8 9 
 0-->/tmp/___go_build_main_go
 1-->-a
 2-->fuck
 3-->-b
 4-->you
package main
import (
	"fmt"
	"strconv"
)
func main() {
	for a := 1; a < 5; a++ {
		for b := 0; b < 5; b++ {
			if b%2 == 1 {
				continue
			}
			fmt.Println(strconv.Itoa(a) + "-->" + strconv.Itoa(b))
		}
	}
	fmt.Println("========================================")
flg:
	for a := 1; a < 5; a++ {
		for b := 0; b < 5; b++ {
			if b%2 == 1 {
				continue flg
			}
			fmt.Println(strconv.Itoa(a) + "-->" + strconv.Itoa(b))
		}
	}
}
 
1-->0
 1-->2
 1-->4
 2-->0
 2-->2
 2-->4
 3-->0
 3-->2
 3-->4
 4-->0
 4-->2
 4-->4
 ========================================
 1-->0
 2-->0
 3-->0
 4-->0
package main
import "fmt"
type ttest struct {
	name string
}
func main() {
	a := []*ttest{&ttest{"aaa"}, &ttest{"bbb"}}
	b := []ttest{ttest{"ccc"}, ttest{"ddd"}, ttest{"eee"}}
	for k, v := range b {
		fmt.Printf("v-->%p\n", &v)
		if k == 0 {
			a = append(a, &v)
		}
	}
	for _, v := range a {
		fmt.Print(v.name + ",")
	}
}
 
由于变量v的地址一直不变,而值随着遍历一直在变所以拼接到a最后面的哪个值一直在变,运行结果如下:
v-->0xc000010200
 v-->0xc000010200
 v-->0xc000010200
 aaa,bbb,eee,
 Process finished with exit code 0