golang基础(三):类型转换、各种运算符

目录

一、各种类型相互转换

1. 整形间相互转换

2. 整型转浮点型

3. 浮点型之间相互转换

4. 其他类型转换为string,第一种方式 spritf

5. 第二种方式,strconv

6. 字符串转其他类型,strconv

二、各种运算符

1. 算术运算符

 2. 关系运算符

3. 逻辑运算符

 4. 赋值运算符


一、各种类型相互转换

1. 整形间相互转换

一般都是由小转大,不建议由大转小,会有数值的误差

package main

import "fmt"

func main() {
    var a int8 = 20
	var b int16 = 40
	var c = int16(a) + b // int8 转成 int16
	fmt.Println(c)       // 60
}

2. 整型转浮点型

package main

import "fmt"

func main() {
    var a float32 = 12.1
	var b int = 8
	var c = a + float32(b)
	fmt.Printf("%v -- %T", c, c) // 20.1 -- float32
}

3. 浮点型之间相互转换

package main

import "fmt"

func main() {
    var a float32 = 12.12
	var b float64 = 18.1
	var c = float64(a) + b         // 原样输出
	var d = fmt.Sprintf("%.4v", c) // 输出四位,并四舍五入
	fmt.Println(c)                 // 30.219999885559083
	fmt.Println(d)                 //30.22
}

4. 其他类型转换为string,第一种方式 spritf

package main

import "fmt"

func main() {
    var i int = 12
	var f float32 = 15.14
	var t bool = true
	var b byte = 'b'
	// sprintf 使用中需要注意转换的格式 int 为%d float 为%f bool 为%t byte 为%c/%v是输出的ascii值
	var str1 = fmt.Sprintf("%d", i)
	fmt.Printf("%v -- %T\n", str1, str1) // 12 -- string
	
	var str2 = fmt.Sprintf("%f", f)
	fmt.Printf("%v -- %T\n", str2, str2) // 15.140000 -- string
	
	var str3 = fmt.Sprintf("%t", t)
	fmt.Printf("%v -- %T\n", str3, str3) // true -- string
	
	var str4 = fmt.Sprintf("%c", b)
	var str5 = fmt.Sprintf("%v", b)
	fmt.Printf("%v -- %T\n", str4, str4) // b -- string
	fmt.Printf("%v -- %T\n", str5, str5) // 98 -- string
}

5. 第二种方式,strconv

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var i int = 12
	var f float32 = 15.14
	var t bool = true

	var str1 = strconv.FormatInt(int64(i), 10)
	fmt.Printf("%v -- %T\n", str1, str1)

	/**
	参数 1:要转的值,float64格式
	参数 2:格式化类型
		'f'(-ddd.dddd)、
		'b'(-ddddp±ddd,指数为二进制)、
		'e'(-d.dddde±dd,十进制指数)、
		'E'(-d.ddddE±dd,十进制指数)、
		'g'(指数很大时用'e'格式,否则'f'格式)、
		'G'(指数很大时用'E'格式,否则'f'格式)。
	参数 3: 保留的小数点 -1(不对小数点格式化)
	参数 4:格式化的类型
	*/
	var str2 = strconv.FormatFloat(float64(f), 'f', 1, 64)
	fmt.Printf("%v -- %T\n", str2, str2)

	var str3 = strconv.FormatBool(t)
	fmt.Printf("%v -- %T\n", str3, str3)
}

6. 字符串转其他类型,strconv

package main

import "fmt"

func main() {
    var str1 = "123456"
	i64, _ := strconv.ParseInt(str1, 10, 64)
	fmt.Printf("%v -- %T\n", i64, i64) // 123456 -- int64

	var str2 = "3.14159"
	f64, _ := strconv.ParseFloat(str2, 64)
	fmt.Printf("%v -- %T\n", f64, f64) // 3.14159 -- float64
}

二、各种运算符

1. 算术运算符

注意: 1) 除法:如果相除的两个数都是整数,那么除后会自动去掉小数部分,保留整数部分

2) ++, -- 只能独立使用

package main 

import "fmt"

func main() {
    fmt.Println(10 / 3) // 3
    fmt.println(10.0 / 3) // 3.333333335

    var a = 10
    b := a++ // 这种是错误的,错误的
    a++ // 只可以这样使用!!!
}

 2. 关系运算符

3. 逻辑运算符

 注意:1)&& 前面是false那么后面不再执行;2)|| 前面是true 后面不再执行。

 4. 赋值运算符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值