Go(一)基础

一、变量
1、定义变量
var 变量名字 类型 = 表达式
空标志服: _

var a int  //默认初始化值为0
var x int = 10
var y = false  //布尔型
var (
	x, y int
	a, s = 100, "abc"
)
//简短模式定义变量
x := 100
a, s  : = 100, "abc" 

2、定义常量
const 名字 [类型] = 值

const A = "abc"
//特殊常量值iota
const (
	A = iota
	B = iota
	C = iota
)

二、循环

for i := 0; i < 10; i++ {
	fmt.Println(i)
}
//简短模式
x := 10
for x > 2 {
	x--
	fmt.Println(x)
}
i := 0 
for {
	i++ 
	if i > 9 {
		break
	}
	fmt.Println(i)
}
//方式二
for index, value := range arry {
	fmt.Println(index,value)
}
lesson := [8] int{50, 80, 78, 36, 70, 85, 90, 87}
for i, v := range lesson {
	fmt.Println(i, v)
}

三、切片

//数组定义
var 名字 [长度(或...代替)] 类型 {}
//切片定义
var 名字 [] 类型 {}
var s [] int
var s = [] int{1, 2, 3, 4, 5, 6}
s := [] int{1, 2, 3, 4, 5, 6}
//数组做切片
arr  :=  [...] int{1, 2, 3, 4}
sl := arr[0:2]  //在数组arr中从第0个开始取两个值做切片
//切片改变
s := [] int{1, 2, 3, 4, 5, 6}
s[0] = 10 //改变值
//简短模式
s := []{1:20} //第二项值改变为20 
//添加
s := append(s, 15)

四、函数

//定义
func name (arg) {
	do things
}
//传参
func score(x int) {
	fmt.Println(x)
}
func main(){
	socre(50)
}
//返回值
func name (arg) rType{
	do things
	return result
}
func (a, b int) int {
	return a+b
}
//多个返回值
func (a, b int) (c int, d int ) {
	c = a
	d = b
	return c , d
}
//返回错误
func (x, y int) (int, error) {
	if y == 0 {
		return 0, errors.New("y值不能为0")
	}
	return x  /  y, nil
}
//求和
func getAvg(s []int) int {
	sum := 0
	for i := 0; i < len(s); i++ {
		sum += s[i]
	}
	return sum / len(s)
}
//匿名函数
func main() {
	func(s) {
		println(s)
	}("hello world")
}
func main() {
	add := func(x, y int){
		reyurn x + y
	}
	println(add(1,2))
}

五、基础包

import  (
	"fmt"
	"os"  //接收命令行传入的参数
	"reflect" // 转换类型
)
func main() {
	osArgs := os.Args[1:]
	var s []int
	item, _  = strconv.Atoi(osArgs)
	s = append(s, item)
}

猜你喜欢

转载自blog.csdn.net/qq_38904347/article/details/87257602