当函数为数值时,会进行相加
当函数为字符串时,会进行拼接
int 8 -128-127 负二的七次方到正二的七次方减一
因为符号占一个空格 所以不是八次方而是七次方 因为均分有正0和负零导致
0算正0 负0算一,导致正数比负数少一位,那一位就是0
无符号数值类型 uint
uint8 无符号等于全正数 2的八次方减一
减去的那个1就是0
如何输出函数的数据类型
fmt.Printf(“xxx的数据类型是 %T”m,xxx)
注:为啥要多出来个%T呢,类似于转换输出 不添加%T会出现不一样的东西
如何输出函数数据类型 和 所占字节
package main
// import "fmt"
import(
"fmt"
"unsafe"
)
func main(){
// var i int8 = 127.
// var j int8 = -128
// var k uint8 = 225
// fmt.Println(i,j,k)
// var n1 int = 1222
// var n2 = "网"
// fmt.Printf("n1的数据类型 ",n1)
// fmt.Printf("n2的数据类型 %T \n",n2)
var n3 int64 =200
fmt.Printf("n3的数据类型 %T和所占字节是 %d ",n3,unsafe.Sizeof(n3))
}
案例 n3 就是输出n3的数据类型
函数的数据类型一般采取保小不保大
就是说你根据项目的需求来操作,不能一个人的年龄是最大一百多岁,你放个int64
最好年龄用 byte数据类型 刚好是0-255,人的年龄目前是不会达到255岁
浮点数
float64和float32
非需求建议默认gloat64
浮点数就是小数点漂浮不定
例
如:
num5 := 5.12e0
num6 := .512e1
num7 := .0512e2
fmt.Println("\nnum5=",num5,"num6=",num6,"num7=",num7)
num5,num6,num7都是一样的他可根据后面的e*改变
十进制案例
num2 :=.123
num3 := 5.12
fmt.Printf("num2=",num2,"num3= ",num3)
如num2 = .123前面可以没有 0但是不能没有“.”
科学计数法如
num4 :=5.123e5//2.123成语==乘于10的5次方 注 :e不区分大小写
num5 := 5123e-5//e-5意思是除以10的5次方
fmt.Println("num4=" , num4 , "num5=",num5)
e就好比*10*
前面的数乘10在乘后面的数字
就像代码段里的5.123e5等于5.123乘于10的五次方
第二段num5里面的e-5相对于第一段中间多了个-意思就是除,和第一段意思相反
向下复制快捷键shift+alt+下箭头
字符串-字符
go语言中 字符通常用 byte表示
字符需要通过转译如
var c1 byte = '0'
var c2 byte = 'a'
var c3 byte = '啊'
fmt.Println("c1=%c",c1)
fmt.Println("c2=%c",c2)
fmt.Println("c3=%c",c3 )
不通过%c进行转译的话输出的不是字符 而是十进制的数值
如果输出的字符在ask码表内,可直接通过byte输出
如果在字符对应的码值大于255建议使用 int类型保存
byte范围内如果需要以字符方式输出,需要使用上图的3,4,5,行的(%c)输出
布尔类型
判断真假
布尔类型也叫bool类型 bool类型只允许取值 true和 false
布尔类型只占一个字节
通常用在if判断或者for循环
//布尔类型的使用
var b = false
//布尔类型只占一个字节
fmt.Println("b所占字节是=", unsafe.Sizeof(b))
//布尔类型只能取true 或者false
string字符串的注意事项
var str1 string = "北京时间 :12:00"
fmt.Println("现在时间是",str1)
字符串操作细节
输出字符串时会经常用到一些字符,有些字符输出就会很麻烦
··可以完美解决“就是键盘esc”下面的按钮
var str1 string = "北京时间 :12:00"
var str2 = `
a
a
a
a
a
`
fmt.Println("现在时间是",str1)
fmt.Println(str2)
输出
像代码段里面的回车什么其他符号都能输出
字符串的拼接
//字符串的拼接
str3 := "123"
str3 += "456"
fmt.Println(str3)
这样输出的值就是 123456 拼接过的字符串
当字符串拼接过长怎么办
上图时错误的例子
下面才是正确的
基本数据类型默认值
数据类型 | 默认值 |
---|---|
整数 | 0 |
浮点 | 0 |
字符串 | 空 |
布尔 | false |
//函数基本数据类型的默认值
var a int
var b float32
var c float64
var d bool
fmt.Println("数值类型",a,"浮点数32位和64位",b,c,"布尔类型",d)
基本数据类型的转换
//基本数据类型的转换
var n1 int = 100
var n2 float32 = float32(n1)
var n3 int8 = int8(n1)
fmt.Printf("n1=%v n2= %v n3 =%v",n1,n2,n3)
//%v的表示就像数值一样n1=[0],n2=[1]n3=[2],n1,n2,n3