golang代码优化

for循环方法获取固定长度–>固定值获取长度

前
func getCount() int {
	var count int
	for i := 0; i < 10; i++ {
		count++
	}
	fmt.Println("getCount:", count)
	return count
}

func main() {
	for i := 0; i < getCount(); i++ {
		fmt.Println("count:", i)
	}
}


后
count := getCount()
for i := 0; i < count; i++ {
    // do something
}

for range获取值

前
func main() {
	persons := []struct {
		no int
	}{
		{no: 1},
		{no: 2},
		{no: 3},
	}
	for _, s := range persons {
		s.no += 10
	}
	fmt.Println(persons)
	personsLen := len(persons)
	for i := 0; i < personsLen; i++ {
		persons[i].no += 100
	}
	fmt.Println(persons)
}

后
func main() {
	persons := []struct {
		no int
	}{
		{no: 1},
		{no: 2},
		{no: 3},
	}
	for i := range persons {
		persons[i].no += 10
	}
	fmt.Println(persons)
	personsLen := len(persons)
	for i := 0; i < personsLen; i++ {
		persons[i].no += 100
	}
	fmt.Println(persons)
}