zoukankan      html  css  js  c++  java
  • Golang语言学习笔记(四)

    GoLang中的运算符

    1.Golang内置运算符

    1.算数运算符

    运算符 描述
    + 相加
    - 相减
    * 相乘
    / 相除
    % 取余

    2.关系运算符

    运算符 描述
    == 检查两个值是否相等,如果相等返回True,否则返回False
    != 检查两个值是否不相等,如果不相等返回True,否则返回False
    > 检查左边值是否大于右边值,如果是返回True,否则返回False
    >= 检查左边值是否大于等于右边值,如果是返回True,否则返回False
    < 检查左边值是否小于右边值,如果是返回True,否则返回False
    <= 检查左边值是否小于等于右边值,如果是返回True,否则返回False

    3.逻辑运算符

    运算符 描述
    && 逻辑 AND 运算符,如果两边的额操作数都是true,则为true,否则为false
    || 逻辑 OR 运算符,如果两边的额操作数有一个为true,则为true,否则为false
    ! 逻辑 NOT 运算符,如果条件为true,则为false,否则为true

    4.位运算符

    运算符 描述
    & 两位均为1才为1
    | 两位有一个为1就为1
    ^ 相异或 两位不一样则为1
    << 左移n位就是乘以2的n次方。 "a<<b" 是把a的各二进位全部左移b位,高位丢弃,低位补0
    >> 右移n位就是除以2的n次方。

    5.赋值运算符

    运算符 描述
    = 简单的赋值运算,将一个表达式的值赋给一个左值
    += 相加后在赋值
    *= 相减后在赋值
    /= 相乘后在赋值
    %= 取余后在赋值

    代码:
    Demo09/main.go

    package main
    import (
    	"fmt"
    )
    
    
    //定义一个方法
    
    func test() bool {
    	fmt.Println("test....")
    	return true
    }
    func main(){
    
    	//1.算数运算符
    	/*
    		+|-|*|/|%
    		/ 两个整数相除,结果不为整数时,去掉小数部分,保留整数部分,如果时浮点数相除,会保留小数部分
    		% 取余=被除数 - (被除数/除数) * 除数
    
    		注意:++(自增)和--(自减)在Go语言中时单独的语句,不是运算符
    	
    	*/
    
    	// var a = 6
    	// var b = 3
    	// fmt.Println(a + b)//9
    	// fmt.Println(a - b)//3
    	// fmt.Println(a * b)//18
    	// fmt.Println(a / b)//2
    
    
    	// 两个整数相除,结果不为整数时,去掉小数部分,保留整数部分,如果时浮点数相除,会保留小数部分
    	// var n1 = 10
    	// var n2 = 3
    	// fmt.Println(n1 / n2)//3
    
    
    	// var n1 = 10.0
    	// var n2 = 3.0
    	// fmt.Println(n1 / n2)//3.3333333333333335
    
    	//% 取余=被除数 - (被除数/除数) * 除数
    	// var n1 = 10
    	// var n2 = 3
    	// fmt.Println(n1 % n2)//1
    	// fmt.Println(-10 % 3)//-1
    	// fmt.Println(10 % -3)//1
    
    	//在Golanlg中,++ 和 --只能独立使用, 错误写法如下
    	// var i int =8
    	// var a int 
    	// a = i ++//错误, i++只能独立使用:syntax error: unexpected ++ at end of statement
    	// a = i-- //错误,i--只能独立使用:syntax error: unexpected -- at end of statement
    	// fmt.Println(a)
    
    	//在Golang中没有前++错误写法如下:
    	// var a = 12
    	// --a//错误写法
    	// a--//正确写法,结果为11
    	// fmt.Println(a)
    
    	//2.关系运算符
    
    	/*
    		== 检查两个值是否相等,如果相等返回True,否则返回False
    		!= 检查两个值是否不相等,如果不相等返回True,否则返回False
    		>  检查左边值是否大于右边值,如果是返回True,否则返回False
    		>= 检查左边值是否大于等于右边值,如果是返回True,否则返回False
    		<  检查左边值是否小于右边值,如果是返回True,否则返回False
    		<= 检查左边值是否小于等于右边值,如果是返回True,否则返回False
    	*/
    
    	//演示关系运算符的使用
    
    	// var a1 = 9
    	// var a2 = 8
    	// fmt.Println(a1 == a2)//false
    	// fmt.Println(a1 != a2)//true
    	// fmt.Println(a1 > a2)//true
    	// fmt.Println(a1 >= a2)//true
    	// fmt.Println(a1 < a2)//false
    	// fmt.Println(a1 <= a2)//false
    
    
    	//关系运算符主要用于条件判断
    	// var a1 = 9
    	// var a2 = 8
    	// flag := a1 > a2
    	// if flag {
    	// 	fmt.Println("a1>a2")//a1>a2
    	// }
    
    	// if a1 == a2 {
    	// 	fmt.Println("a1等于a2")
    	// } else {
    	// 	fmt.Println("a1不等于a2")//a1不等于a2
    	// }
    
    	/*
    		&& 逻辑 AND 运算符,如果两边的额操作数都是true,则为true,否则为false
    		|| 逻辑 OR 运算符,如果两边的额操作数有一个为true,则为true,否则为false
    		! 逻辑 NOT 运算符,如果条件为true,则为false,否则为true
    	*/
    	// var a = 23
    	// var b = 8
    
    	// fmt.Println(a > 10 && b < 10)//true
    	// fmt.Println(a > 24 && b < 10)//false
    	// fmt.Println(a > 5 && b < 6)//false
    	// fmt.Println(a > 25 || b < 6)//false
    
    	// fmt.Println(a > 10 || b < 10)//true
    	// fmt.Println(a > 24 || b < 10)//true
    	// fmt.Println(a > 5 || b < 6)//true
    	// fmt.Println(a > 25 || b < 6)//false
    
    	// flag := true
    	// fmt.Println(!flag)//false
    
    
    	//逻辑与和逻辑或短路
    
    	/*
    		输出:
    		test....
    		执行
    		当第一个条件已经为true时,第二个条件会执行,两个条件都为true,整个条件返回true,执行打印
    	*/
    	// var a = 10
    	// if a > 9 && test() {
    	// 	fmt.Println("执行")
    	// }
    
    	/*
    		输出: 空
    		当第一个条件已经为false时,第二个条件不会执行,整个条件返回false,不执行打印
    	*/
    	// var a = 10
    	// if a > 11 && test() {
    	// 	fmt.Println("执行")
    	// }
    
    	/*
    		输出: 
    		test....
    		执行
    		当地一个条件为false时,第二个条件需要执行,有一个为true,整个条件返回true,执行打印。
    	*/
    	// var a = 10
    	// if a > 11 || test() {
    	// 	fmt.Println("执行")
    	// }
    
    
    	/*
    		输出:
    		test....
    		执行
    		当地一个条件为false时,第二个条件需要执行,有一个为true,整个条件返回true,执行打印。
    	*/
    	// var a = 10
    	// if a > 11 || test() {
    	// 	fmt.Println("执行")
    	// }
    
    	/*
    		输出:
    		执行
    		当地一个条件为true时,第二个条件不需要执行,有一个为true,整个条件返回true,执行打印。
    	*/
    	// var a = 10
    	// if a > 9 || test() {
    	// 	fmt.Println("执行")
    	// }
    
    	/*
    		= 简单的赋值运算,将一个表达式的值赋给一个左值
    		+= 相加后在赋值
    		*= 相减后在赋值
    		/= 相乘后在赋值
    		%= 取余后在赋值
    	*/
    
    	//赋值运算
    	// var a = 20
    	// a = 21
    	// fmt.Println(a)//21
    
    	// var a = 23 +1
    	// fmt.Println(a)//24
    
    	// var a = 10
    	// b := a
    	// fmt.Println(b)//10
    
    	// var a = 10
    	// b := a + 2
    	// fmt.Println(b)//12
    
    	// var a = 10
    	// a += 2 //等价于a = a + 2
    	// fmt.Println(a)//12
    
    	// var a = 10
    	// a -= 2 //等价于a = a - 2
    	// fmt.Println(a)//8
    
    	// var a = 10
    	// a *= 2 //等价于a = a * 2
    	// fmt.Println(a)//20
    
    	// var a = 10
    	// a /= 3 //等价于a = a / 3
    	// fmt.Println(a)//3,两个整数相除,结果为整数,舍弃小数部分
    
    	// var a = 10.0
    	// a /= 3.0 //等价于a = a / 3.0
    	// fmt.Println(a)//3.3333333333333335,两个浮点数相除,结果小数
    
    	// var a = 10
    	// a %= 3//等价于a = a % 3
    	// fmt.Println(a)//1
    
    	/*
    		位运算符,对整数在内存中的二进制位进行操作
    		& 两位均为1才为1
    		| 两位有一个为1就为1
    		^ 相异或  两位不一样则为1
    		<< 左移n位就是乘以2的n次方。 "a<<b" 是把a的各二进位全部左移b位,高位丢弃,低位补0
    		>> 右移n位就是除以2的n次方。
    
    	*/
    
    	// var a = 5   //101
    	// var b = 2   //010
    
    
    	// fmt.Println("a&b=",a&b)//000   十进制值:0
    	// fmt.Println("a|b=",a|b)//111   十进制值:7
    	// fmt.Println("a^b=",a^b)//111   十进制值:7
    	// fmt.Println("a<<b=",a<<b)//10100 十进制值:20, 5 * 2的2次方
    	// fmt.Println("a>>b=",a>>b)//001  十进制值:1, 5 / (2的2次方)
    
    
    
    	//----------------------练习---------------------------
    	//1.有两个变量,a和b,要求将其进行交换,最终打印结果
    	// var a = 34
    	// var b = 10
    	// t := a
    	// a = b
    	// b = t
    	// fmt.Printf("a=%v,b=%v",a,b)//a=10,b=34
    	//2.有两个变量,a和b,要求将其进行交换(不能使用中间变量),最终打印结果
    	// var a = 34
    	// var b = 10
    
    	// a = a + b
    	// b = a - b
    	// a = a - b
    	// fmt.Printf("a=%v,b=%v",a,b)//a=10,b=34
    	//3.假如还有100天房价,请输出:距离放假还有xx个星期零xx天
    
    	// var days = 100
    	// var week = 100 / 7
    	// var day = days % 7
    	// fmt.Printf("距离放假还有%v个星期零%v天", week, day)//距离放假还有14个星期零2天
    	//4.定义一个变量保存华氏温度,华氏温度转换摄氏温度的公式为:C = (F - 32)/1.8,请求出华氏温度对应的摄氏温度
    	
    	var F float64= 100 //华氏温度
    	C := (F - 32) / 1.8
    	fmt.Printf("100度华氏温度对应的设施温度时%.2f",C)//100度华氏温度对应的设施温度时37.78
    
    
    
    
    
    }
    
  • 相关阅读:
    Apache Jmeter 性能测试
    linux 达梦数据库 命令行 卸载
    vue控制台报错Duplicate keys detected: 'xxxx'. This may cause an update error.解决方案
    springboot报错说 Failed to parse multipart servlet request; nested exception is java.io.IOException
    简单理解Callable接口
    Windows下设置Mongodb用户名密码
    Win10 搭建FTP环境,并使用Java实现上传,下载,删除
    【小组展示】1
    【计网II】
    【密码学】AES
  • 原文地址:https://www.cnblogs.com/hanajiang/p/13762148.html
Copyright © 2011-2022 走看看