Golang入门笔记(3)—— 运算符

        本来这块代码,作为有了一点语言基础的人是真不想写的,因为和其他语言没有什么不同的地方,但是就怕 真的还有人看我的帖子,还真怕真的有初学者在看我帖子,所以还是贴心的抄了一遍。

和Java不同的地方 1. &变量取地址,*地址变量 取值;  2.  ++,--  用法不同
  • 算术运算符 

        +,-,*,/,%,++,-- 就是进行算术运算的符号,++,-- 似乎也不像java和C那样可以支持 取值的操作,++、-- 就仅仅是一个操作而已。

         go语言不支持 ++a,--a,不支持三木运算符,的确降低了一些初学编程者的学习成本。

练习代码:

package main

import (
	"fmt"
	"unsafe"
)

func main() {

	fmt.Println("\n ----------------- + 加法运算 --------------")
	//  + 加号: 1.正数(感觉冗余感受不到用处) 2.相加操作  3.字符串拼接
	var num1 int = +10
	fmt.Println(num1) //10

	var num2 int = 20 + 30
	fmt.Printf("num2 = %d", num2) //num2 = 50

	var string1 string = "这是一句" + "话"
	fmt.Printf("\nwords : %s ", string1) //words : 这是一句话

	fmt.Println("\n ----------------- / 除法运算 --------------")
	// “/” 除号 1.2个int相除,结果为int,除不尽也不会有小数。 2.浮点类型参与计算,结果为浮点数。
	fmt.Println(11 / 3)     //3
	fmt.Println(11 / 3.0)   //3.6666666666666665
	fmt.Println(11.0 / 3.0) //3.6666666666666665

	fmt.Println("\n ----------------- / 乘法运算 --------------")
	fmt.Println(unsafe.Sizeof(11.01))
	fmt.Println(unsafe.Sizeof(3.01))
	fmt.Println("数据相乘", 11.0*3.0, ";空间大小为:", unsafe.Sizeof(11.0*3.0))

	fmt.Println("\n ----------------- / 取模运算 --------------")
	//取模公式: a%b 相当于计算机在执行如下的结果 ==> a - a/b*b
	fmt.Println(10 % 3)   // 10%3 = 10-10/3*3 = 1
	fmt.Println(-10 % 3)  // -10%3 = -10- -10/3*3 = -1
	fmt.Println(10 % -3)  // 10%-3 = 10 - (10/-3) * (-3) = 1
	fmt.Println(-10 % -3) // -10%-3 = -10 - (-10/-3) * (-3) = -10 +9 = -1
	// ps 通过我自己运算了一边:   a%b = a- a/b*b 这个公式没有毛病。
	
	//++num1 //Go不支持
	//--num1 //Go 也不支持
	num1++ // -- ++ 只是一个动作,貌似没有返回值。 这点和java和c不同,java和c应该是可以输出这个值的。 
	fmt.Println(num1)

}
  • 赋值运算符
        可将一个非常复杂的函数或一个表达式,或一个值 ,赋给指定的变量,赋值运算符号有:=,+=,-=,/=,%= 
package main

import "fmt"

func main() {

	var num1 int = 10
	var num2 int = (10 + num1) % 3
	fmt.Println(num2)

	var num3 int = 60
	num3 += 30 // 即 num3 = num3 + 30
	fmt.Println("num3 ", num3)
	num3 -= 2 // 即 num3 = num3 - 2
	fmt.Println("num3 ", num3)
	num3 *= 30 // 即 num3 = num3 * 30
	fmt.Println("num3 ", num3)
	num3 /= 10 // 即 num3  = num3 / 30
	fmt.Println("num3 除后 =  ", num3)
	num3 %= 3 //  // 即 num3 = num3 % 3

	// %v 值value的默认表示
	fmt.Printf("num3 取模后 = %v ", num3)

}

  • 关系运算符

        关系运算符的结果 一定是 bool 型 ,要么为 true 要么为 false ,主要用于流程控制中。

package main

import "fmt"

func main() {
	fmt.Println(6 == 9) //false
	fmt.Println(6 != 9) //true
	fmt.Println(6 > 9)  //false
	fmt.Println(6 < 9)  //true 
}
  • 逻辑运算符

逻辑运算符:&& 逻辑与 / 短路与   ; || 逻辑或 / 短路或 ;!逻辑非

package main

import "fmt"

func main() {

	//逻辑运算符号。 通过短路特性,提高了运算效率。
	fmt.Println(true || false) // 短路或
	fmt.Println(true && false) // 短路与
	fmt.Println(!true)         // 非

}
  • 位运算符

& , | ,^ 

 ……暂略..

  • .其他运算符   & 和 *  (这是java中没有的)

& : 返回变量的存储地址。

 * : 取指针变量对应的数值。

package main

import "fmt"

func main() {

	// 1. &变量  &符号可以取变量地址。
	var age int = 18
	fmt.Println(" age 存储空间的地址 :", &age) //  0xc00001c0a8

	var ptr *int = &age
	fmt.Println(ptr)
	//1.  *一个地址变量 可以获取这个指针地址 指向的值。
	fmt.Println("ptr 这个指针指向的具体的值为 ==> ", *ptr)

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值