• 狂神说Go语言学习笔记(三)


    狂神说Go语言学习笔记(一)
    狂神说Go语言学习笔记(二)
    狂神说Go语言学习笔记(四)

    一、逻辑运算符

    在这里插入图片描述

    	var a bool = true
    	var b bool = false
    
    	//与,都为真结果才为真,否则为假
    	if a && b {
    		fmt.Println("都为真")
    	} else {
    		fmt.Println("只有一个为真")
    	}
    
    	//或,都为假才假
    	if a || b {
    		fmt.Println("至少有一个为真")
    	} else {
    		fmt.Println("都为假")
    	}
    
    	//取反
    	if !(a && b) {
    		fmt.Println("取反后为TRUE")
    	} else {
    		fmt.Println("取反后为FALSE")
    	}
    
    	//拓展:短路后不会计算后面的了
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25



    二、位运算符

    在这里插入图片描述

    //二进制 0 1  逢二进一
    
    	//位运算: 二进制上的0 FALSE 1 TRUE
    	//60  0011 1100
    	//13  0000 1101
    	//    ---------
    	// &  0000 1100
    	// |  0011 1101
    	// ^  0011 0001  不同为1 相同为0
    	// >>
    	// <<
    	var a uint = 60
    	var b uint = 13
    	var c uint = 0
    
    	c = a & b
    	fmt.Printf("%d,二进制%b\n", c, c)
    
    	c = a | b
    	fmt.Printf("%d,二进制%b\n", c, c)
    
    	c = a ^ b
    	fmt.Printf("%d,二进制%b\n", c, c)
    
    	c = a << 2
    	fmt.Printf("%d,二进制%b\n", c, c)
    
    	c = b >> 2
    	fmt.Printf("%d,二进制%b", c, c)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在这里插入图片描述


    三、赋值运算符

    在这里插入图片描述

    
    	var a int = 119
    
    	var b int = 361
    
    	//赋值
    	b = a
    	fmt.Println(b)
    
    	b += a
    	fmt.Println(b)
    
    	b -= a
    	fmt.Println(b)
    
    	b *= a
    	fmt.Println(b)
    
    	b /= a
    	fmt.Println(b)
    
    	b %= a
    	fmt.Println(b)
    
    	b >>= a
    	fmt.Println(b)
    
    	b <<= a
    	fmt.Println(b)
    
    	b &= a
    	fmt.Println(b)
    
    	b |= a
    	fmt.Println(b)
    
    	b ^= a
    	fmt.Println(b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    在这里插入图片描述


    四、其他运算符

    在这里插入图片描述

        var a int = 4
    	var ptr *int
    
    	ptr = &a
    	fmt.Printf("a的值为%d\n", a)     //4
    	fmt.Printf("ptr的值为%p\n", ptr) //0xc0000a6058
    	fmt.Printf("ptr为%d\n", *ptr)  //4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述


    五、拓展之获取键盘输入

    	var x int
    	var y float64
    
    	//定义了两个变量 想用键盘来录入这两个变量
    	//输出
    	//fmt.Println() 打印并换行
    	//fmt.Printf()  格式化输出
    	//fmt.Print()   打印输出
    
    	/**
    	输入:
    	fmt.Scanf()
    	fmt.Scanfln()
    	fmt.Scan()
    	*/
    
    	fmt.Println("请输入一个整数和一个浮点数:")
    	//变量取地址 &变量
    	//Scanln 阻塞等待你的键盘输入
    	fmt.Scanln(&x, &y)
    	fmt.Println(x, y)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21



    六、编码规范

    看看就好

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述


    七、程序的流程控制

    在这里插入图片描述

    if 语句

    在这里插入图片描述

    var score int = 92
    
    	if score >= 90 && score <= 100 {
    		fmt.Println("A")
    	} else if score >= 80 && score < 90 {
    		fmt.Println("B")
    	} else if score >= 70 && score < 80 {
    		fmt.Println("C")
    	} else if score >= 60 && score < 70 {
    		fmt.Println("D")
    	} else {
    		fmt.Println("不及格!")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    if多重嵌套

    var a,b int 
    	var pwd int = 20191201914
    	
    	fmt.Println("请输入用户的密码")
    	fmt.Scan(&a)
    	//业务:验证密码是否正确
    	if(a == pwd){
    		fmt.Print("请再次输入密码:")
    		fmt.Scan(&b)
    		if(b == pwd){
    			fmt.Println("登录成功了")
    		}else{
    			fmt.Println("登录失败了,第二次密码输入错误")
    		}
    	}else {
    		fmt.Println("登录失败,密码错误")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    switch语句

    在这里插入图片描述

       var score int = 90
    
    	//匹配 case
    
    	switch score {
    	case 90:
    		fmt.Println("A")
    	case 80:
    		fmt.Println("B")
    	case 50, 60, 70:
    		fmt.Println("C")
    	default:
    		fmt.Println("D")
    	}
    
    	//switch默认的条件 bool = true
    
    	switch {
    	case false:
    		fmt.Println("false")
    	case true:
    		fmt.Println("true")
    	default:
    		fmt.Println("其他!")
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    fallthrough

    在这里插入图片描述

    var score int = 90
    
    	switch score {
    	case 90:
    		fmt.Println("A")
    		fallthrough
    	case 80:
    		if score == 90 {
    			break
    		}
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11



    八、for循环

    在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句
    for循环是一个循环控制结构,可移植性指定次数的循环

         for i := 1; i < 10; i++ {
    		fmt.Println(i)
    	}
    
    	//计算1-10的数字之和
    	var sum int = 0
    	for i := 1; i <= 10; i++ {
    		sum += i
    	}
    	fmt.Println(sum)
    
    	//省去条件
    	i := 1
    	for i < 10 {
    		fmt.Println(i)
    		i++
    	}
    
    	//无限循环
    	i := 1
    	for {
    		fmt.Println(i)
    		i++
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    练习

    /**
    打印一个方阵
    * * * * *
    * * * * *
    * * * * *
    * * * * *
    * * * * *
    */
    func main() {
    	for i := 1; i <= 5; i++ {
    		for j := 1; j <= 5; j++ {
    			fmt.Print("* ")
    		}
    		fmt.Println()
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    //打印九九乘法表
            for i := 1; i <= 9; i++ {
    		for j := 1; j <= i; j++ {
    			fmt.Printf("%d*%d=%d\t", i, j, i*j)
    		}
    		fmt.Println()
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述


    九、break与continue

    break 结束当前整个循环 continue结束当次循环

    	for i := 1; i < 10; i++ {
    		if i == 5 {
    			break
    		}
    		fmt.Println(i)
    	}
    
    	fmt.Println("=============================")
    
    	for j := 1; j < 10; j++ {
    		if j == 5 {
    			continue
    		}
    		fmt.Println(j)
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15



    十、遍历String

    在这里插入图片描述

    	// acsii编码
    	str := "Hello,world!"
    	fmt.Print(str)
    
    	//获取字符串的长度
    	fmt.Println("字符串的长度为:", len(str))
    
    	//获取指定的字节
    	fmt.Print("字节打印:", str[2])
    	fmt.Printf("%c", str[2])
    
    	//for
    	for i := 0; i < len(str); i++ {
    		fmt.Printf("%c ", str[i])
    	}
    
    	// for range循环 遍历数组、切片....
    	// 返回下标和对应的值
    	for i, v := range str {
    		fmt.Print(i)
    		fmt.Printf(" ")
    		fmt.Printf("%c", v)
    	}
    
    	//String 不能改变
    	//str[2] = 'A'
    	//fmt.Println(str[2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
  • 相关阅读:
    Mysql——》decimal
    logstash使用参考
    嗨!不来看一下如何骚气十足的登陆MySQL嘛?
    oracle pdb创建directory报ORA-65254,报错分析和解决
    神经网络中的Heloo,World,基于MINST数据集的LeNet
    IDEA闪退解决方案记录
    人人站CMS后台登不进去解决方案(已解决)
    java从入门到精通二十八(Spring注解开发)
    Zookeeper选举Leader源码剖析(上)
    大数据运维实战第二十六课 Yarn、HDFS、Kafka 内存调优策略以及性能瓶颈
  • 原文地址:https://blog.csdn.net/G823909/article/details/128130424