【Go语言】语法介绍:变量、输入、if、for、switch、函数

语法介绍

package main  //一个程序必须有一个main包

import "fmt"   

//func为函数关键字
func main() {  //程序入口,从main函数进
	fmt.Println("hello go")  //使用包中函数,格式:包名.函数名()
}

变量

//声明一个int型的变量a
	var a int

	//给变量a赋值
	a = 10

	//初始化int型变量b
	var b int = 5

	//自动推导类型
	c := 7

输入

//从键盘进行输入
	var input int
	fmt.Scanf("%d", &input)
	
	var input2 int
	fmt.Scan(&input2)

if-else

//if-else
	if i := 3; i == 3 {  //if支持初始化语句
		fmt.Println("i==3")
	} else if i > 3 {
		fmt.Println("i>3")
	} else {
		fmt.Println("i<3")
	}

for

for i := 1; i < 4; i++ {
		fmt.Println("i=", i)
	}

switch

var num int
	fmt.Scan(&num)
	switch num { //switch 变量
	case 1:
		fmt.Println("num==1") //自带break功能
	case 2:
		fmt.Println("num==2")
	default:
		fmt.Println("其他")
	}

	switch {  //switch后面不带变量
	case num < 2:  //case后面可以写判断语句
		fmt.Println("num<2")
	case num == 2:
		fmt.Println("num=2")
	case num > 2:
		fmt.Println("num>2")
	}

函数

func fun1() {
	fmt.Println("无参无返回值")
}

func fun2(a int) {
	fmt.Println("有参无返回值,参数是:", a)
}

func fun3() (b int) {
	b = 5
	fmt.Println("无参有返回值,返回值是:", b)
	return
}

func fun4(a int) (b int) {
	b = a
	fmt.Printf("有参有返回值,参数是 %d,返回值是 %d", a, b)
	return
}

func fun5(a, b int) (c, d int) {
	c, d = b, a
	fmt.Printf("多返回值:%d %d", c, d)
	return
}

func main() {
	fun1()             //无参无返回值
	fun2(2)            //有参无返回值
	b := fun3()        //无参有返回值
	c := fun4(5)       //有参有返回值
	d, e := fun5(1, 2) //多返回值

	fmt.Printf("%d %d %d %d\n", b, c, d, e)
}

结果:

无参无返回值

有参无返回值,参数是: 2

无参有返回值,返回值是: 5

有参有返回值,参数是 5,返回值是 5多返回值:2 15 5 2 1

函数类型

//函数类型
type FunType func(int, int) int

func Add(a, b int) (c int) {
	c = a + b
	return
}

func Minus(a, b int) (c int) {
	c = a - b
	return
}

//回调函数
func fun(a, b int, funType FunType) (res int) {
	res = funType(a, b)
	return
}

func main() {
	res := fun(1, 2, Add)
	fmt.Println("res=", res)
}

结果:

res= 3

匿名函数和闭包

//匿名函数,没有函数名
	func(a int) { //函数内可以使用函数外的变量,称为闭包,闭包捕获外部变量是以引用形式捕获
		fmt.Println("b=", b)
		fmt.Println("a=", a)
	}(3) //直接调用

	t := func() {
		fmt.Println("我是一个匿名函数")
	}

	t()  //间接调用匿名函数

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烊萌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值