go语言学习——基础语法

80 阅读1分钟

一、if语句的使用

(1)if的条件里可以赋值
(2)if的条件里赋值的变量作用域就在这个if语句里

package main

import (
	"fmt"
	"io/ioutil"
)

func main() {
	const fileName = "branch.txt"
	if contents, err := ioutil.ReadFile(fileName); err != nil {
		fmt.Println(err)
	} else {
		fmt.Printf("%s\n", contents)
	}

}

二、switch的使用

(1)switch会自动break ,除非使用fallthrough

func eval(a,b int ,op string) int {
	var result int
	switch op {
	case "+":
		result=a+b
	case "-":
		result=a-b
	case "*":
		result=a*b
	case "/":
		result=a/b
	default:
		panic("unSupport op"+op)
	}
	return result
}

(2)switch后可以没有表达式

	grade :=""
	switch {
	case mark<0||mark>100:
		panic(fmt.Sprintf("wrong mark:%d", mark))
	case mark<60:
		grade="F"
	case mark<70:
		grade="D"
	case mark<80:
		grade="C"
	case mark<90:
		grade="B"
	case mark<=100:
		grade="A"
	}
	return grade
}

三、for循环的使用

(1)for的条件里不需要括号
(2)for的条件里可以省略初始条件,结束条件,递增表达式

func accumulation(start,limit int) int   {
	sum :=0
	for i:=start;i<=limit;i++ {
		sum +=i
	}
	return sum
}

(3)省略初始条件,相当于while

func transToBin(number int) string {
	result := ""
	if number==0 {
		return "0"
	}
	for ; number > 0; number /= 2 {
		lsb := number % 2
		result = strconv.Itoa(lsb) + result
	}
	return result
}