002.Go语言的基础语法

目录

1.注释

2.变量

3.常量

4.基本数据类型

5.运算符

6.获取键盘输入


1.注释

	//单行注释
	/*
		多行注释
	*/

2.变量

        2.1:变量定义

	// 一次定义一个变量: var 变量名 数据类型 = 变量值
	var name string = "张三"
	fmt.Println(name)

	//一次定义多个相同类型变量: var 变量名1,变量名2,变量名3 数据类型 = 值1,值2,值3
	var num1, num2, num3 int = 10, 20, 30
	fmt.Println(num1, num2, num3)

	/*
		一次定义多个不同类型变量:
		var (
				变量名1 数据类型 = 值1
				变量名2 数据类型 = 值2
				变量名3 数据类型 = 值3
			)
	*/
	var (
		age    int    = 23
		gender int    = '男'
		addr   string = "山东"
	)
	fmt.Printf("age:%d,gender:%c,addr:%s\n", age, gender, addr)

	/*
		变量定义后未赋值会有一个默认值:
			整型:0
			浮点型:0.0
			字符串:空字符串
			布尔类型:false
			切片、函数、指针:nil
	*/
	var (
		i   int
		f   float64
		str string
		bol bool
	)
	fmt.Printf("整型:%d,浮点型:%.1f,字符串:%s,布尔:%t\n", i, f, str, bol)
    
    //简化写法
    hobby := "染黄毛"
	fmt.Println(hobby)

        2.2:变量交换简化写法

	var (
		a int = 10
		b int = 20
	)
	b, a = a, b
	fmt.Printf("a:%d,b:%d\n", a, b)

        2.3:匿名变量:_ 传给匿名变量的值将会被丢弃

    func main() {
	    a, _ := anonymous()
	    fmt.Println(a)
    }

    func anonymous() (int, int) {
	    return 10, 20
    }

        2.4:打印变量类型和内存地址

	name := "张三"
	fmt.Printf("name:%s,数据类型:%T,内存地址:%p\n", name, name, &name)

        2.5:变量的作用域

                变量根据作用域不同可以分为全局变量和局部变量

                        全局变量:定义在函数外的变量

                        局部变量:定义在函数内的变量

3.常量

	//显式定义
	const NAME string = "张三"
	//隐式定义
	const AGE = 23
	//一次定义多个
	const GENDER, ADDR = "男", "山东"
	fmt.Println(NAME, AGE, GENDER, ADDR)

4.基本数据类型

	// %d 整型,%f 浮点型,%c 字符,%s 字符串,%t 布尔,%b 二进制,%p 地址,& 取地址符,%T 数据类型,\n 换行,\t制表符
    //整型:%d,默认0
	var i int
	fmt.Printf("整型:默认值:%d,数据类型:%T\n", i, i)

	//浮点型:%f,默认0.0,%.2f保留两位小数
	var f float64
	fmt.Printf("浮点型:默认值:%.2f,数据类型:%T\n", f, f)
	//字符:是整型,%c打印字符,默认空字符
	var gender int
	fmt.Printf("字符型:默认值:%c,数据类型:%T\n", gender, gender)
	//字符串:%s,默认空字符串
	var str string
	fmt.Printf("字符串:默认值:%s,数据类型:%T\n", str, str)
	//布尔:%t,默认false
	var b bool
	fmt.Printf("字符串:默认值:%t,数据类型:%T\n", b, b)

5.运算符


	// 算数运算符 +,-,*,/,%,++,--

	//关系运算符 ==,!=,>,>=,<,<=

	// 赋值运算符 =,+=,-=,*=,/=,%=,&=,|=,^=

	//逻辑运算符 &&,||,!

	//位运算符:换算成二进制按位计算,&,|,^,&^,>>,<<
	var a int = 60 // 0011 1100
	var b int = 13 // 0000 1101

	//&:与,都是1结果才是1
	fmt.Printf("%b\n", a&b) //0000 1100

	//|:或,有一个1结果就是1
	fmt.Printf("%b\n", a|b) //0011 1101

	//^:异或,不同为1,相同为0
	fmt.Printf("%b\n", a^b) //0011 0001

	//&^:位清空,对于b上的每个数值,如果为0则取a对应位上的数值,如果为1则取0
	fmt.Printf("%b\n", a&^b) //0011 0000

	//>>:右移:往右边移两位
	fmt.Printf("%b\n", a>>2) //右移后:0000 1111

	//<<:左移:往左边移两位
	fmt.Printf("%b\n", a<<2) //左移后:1111 0000

6.获取键盘输入

/*
	获取键盘输入:
		fmt.Scan()      //接收键盘输入;如果要求输入多个值,只输入了一个,回车后程序会等待继续输入
		fmt.Scanln()    //接收键盘输入;如果要求输入多个值,只输入了一个,回车后未输入的值会赋默认值
		fmt.Scanf()     //接收键盘输入;如果要求输入多个值,只输入了一个,回车后未输入的值会赋默认值,支持格式化输入

	打印:
		fmt.Println()    // 打印并换行
		fmt.Printf()     // 格式化输出
		fmt.print()      // 打印输出
*/
func main() {

	fmt.Println("请输入两个整数:")
	var a, b int
	testScanf(a, b)

}
func testScan(a, b int) {
	fmt.Scan(&a, &b)
	fmt.Printf("scan,a:%d,b:%d", a, b)
}
func testScanln(a, b int) {
	fmt.Scanln(&a, &b)
	fmt.Printf("scanln,a:%d,b:%d", a, b)
}
func testScanf(a, b int) {
	fmt.Scanf("%d,%d", &a, &b)
	fmt.Printf("scanf,a:%d,b:%d", a, b)
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值