学习golang-基础语法


定义变量

用关键字var定义

在定义时可以给变量加上类型

var a int = 666

当然也可以不加类型,go语言可以自动识别

var b = 999

可以使用var关键字同时定义多个变量

var (
	 v1 = 666
	 v2 = 999
) 

var  a,b,c = 3,6,9
var  e,f,g int = 3,6,9

用var定义的变量,可以在函数中使用,也可以在函数外使用

用':='定义变量

	func varValue(){
		i := "I"
		l := "love"
		y := "you"
		a,b,c := 1,2,3
	}

这中形式,用于充当零时变量,用与函数内,不能使用在函数外

定义常量

使用const定义常量

const language = "golang"

一次性定义多个常量

const(
	html = 0
	css = 1
	javascript = 2
	php = 3
	golang = 4
)

枚举

定义常量,给第一个常量赋值使用关键字iota


const {
	v1 = iota
	v2
	v3
}

 func main(){
 	fmt.PrintLn(v1,v2,v3)//0,1,2
 }
 

变量总结

  1. 变量类型写在变量名之后

var a int

  1. 编译器可推测变量类型,不用刻意声明类型(在变量初始化的情况下)

var a int//变量未初始化,需声明变量类型

var b := 111

  1. 数据类型


//complex是复数类型,go没有char,有rune

a := complex(4, 6)

fmt.Println(a)//6i+4
fmt.Println(real(a))//实部,4
fmt.Println(imag(a))//虚部,6

条件语句

if条件语句

func ifelse(a int) string {
	result := ""
	if a < 0 || a > 100 {
		result = "数据非法"
	} else if a < 60 {
		result = "快搬砖把"
	} else if a < 70 {
		result = "加油"
	} else if a < 80 {
		result = "还行"
	} else if a < 90 {
		result = "优秀"
	} else if a <= 100 {
		result = "秀儿"
	}
	return result
}

switch条件语句

func testSwich(b int) {
	switch {
	case b < 0 || b > 100:
		fmt.Println("数据异常")
	case b < 60:
		fmt.Println("继续搬砖吧")
	case b < 70:
		fmt.Println("加油")
	case b < 80:
		fmt.Println("看好你")
	case b < 90:
		fmt.Print("不错哦")
	case b <= 100:
		fmt.Println("优秀")
	}
}

循环

for


//遍历一个长度大小为10的数组,对其求和
//var array = [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
//forArraySum(array)
func forArraySum(a [10]int) int {
	count := len(a)
	sum := 0
	for i := 0; i < count; i++ {
		sum += a[i]
	}
	return sum
}

//go语言的while

func while(a [10]int) {
	b := len(a) - 1
	for b >= 0 {
		fmt.Println(a[b])
		b--
	}
}

//死循环
func dieRange() {

	for {
		fmt.Println(6666)
	}

}

for...range


//遍历数组,求和
//sums(array)
func sums(numbers [10]int) int {
	sum := 0
	for i := range numbers {
		sum += numbers[i]
	}
	return sum
}

//printSums(1,2,3,4,5,6)
//打印数组的索引和值
func printSums(numbers ...int)  {
	for i,v := range numbers {
		fmt.Println(i,v)
	}
}

//只打印数组的值
func printSumsV(numbers ...int)  {
	for _,v := range numbers {
		fmt.Println(v)
	}
}