package main
import "fmt"
func main(){
var age int //声明一个 int类型的变量叫age
age = 18 //给变量用 = 赋值
fmt.Println(age) //使用变量 输出变量的值
}
编译运行输出变量值
package main
import "fmt"
func main(){
var num1 int = 18 //1.指定变量的类型并且赋值
fmt.Println(num1) //使用变量 输出变量的值
var num2 int //2定变量类型,不赋值,使用默认值
fmt.Println(num2 ) //使用变量 输出变量的值
var num3="tom" //3定变量不指定类型,根据后边的赋值自动确认类型
fmt.Println(num3 ) //使用变量 输出变量的值
num4:="男" //4.省略 var 使用 :=,不能写成 =
fmt.Println(num4 ) //使用变量 输出变量的值
}
编译运行
package main
import "fmt"
func main(){
//未赋值的
fmt.Println("未赋值的####################")
var n1,n2,n3 int
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
//赋值的
fmt.Println("赋值的####################")
var n4,n5,n6 = 10,"小明",7.8
fmt.Println(n4)
fmt.Println(n5)
fmt.Println(n6)
}
编译运行?
?定义在函数内的变量叫做局部变量
package main
import "fmt"
//第一种声明方式 一个一个声明
var n1 = 100
var n2 = 9.7
//第二种声明方式,一次多个
var (
n3 = 500
n4 = "hello"
)
func main(){
fmt.Println(n1)
fmt.Println(n2)
fmt.Println(n3)
fmt.Println(n4)
}
【1】整数类型介绍:
简单的说,就是用于存放整数值的,比如10,-45,6712等等。
【2】有符号整数类型:
【3】无符号整数类型:
【4】其他整数类型:
?
Golang的整数类型,默认声明为int类型?
?浮点型底层存储:符号位+指数位+尾数位,尾数位只存了一个大概,有可能会出现精度丢失所以通常建议使用 float64,默认也是float64
浮点数可以用十进制表示形式,也可以用科学计数法
//十进制
var num float32= 3.14
//科学计数法
var mum float64 = 314E-2
var num float64 = 314e-2
定义字符使用byte
字母、数字、标点等字符底层是按照ASCII码进行存储,本质上是一个整数,可以至直接参与运算,输出字符的时候会将对应码值输出。
package main
import "fmt"
func main(){
var c1 byte = 'a'
var c2 byte = '6'
var c3 byte = '('
fmt.Println(c1 + 20) //117
fmt.Println(c1) //97
fmt.Println(c2) //54
fmt.Println(c3) //40
}
??汉字字符,底层对应的是Unicode码值,使用byte会报错类型溢出,因为byte的范围是255,可以使用int
?
?如果想显示对应的字符,必须采用格式化输出
?
常用转义字符
\n 换行? ? \b 退格? ? \r?光标回到本行开头,后续就会替换原有的字符
\t 制表符? ?\" 输出"
? ? ? ? 布尔型(bool?) 只有两个值 true和false,只占用一个字节,一般用于逻辑运算和流程控制
?
? ? ? ? 一串固定长度的字符连接起来的字符序列
如果字符串中没有特殊字符,直接使用英文双引号包裹?
如果有特殊字符使用 英文反引号包裹或转义字符
字符串拼接 使用? +? ?或者 +=,当字符过长时吗+ 需要保留在上一行的最后
数据类型 | 默认值 | 数据类型 | 默认值 |
---|---|---|---|
整数类型 | 0 | 布尔 | false |
浮点类型 | 0 | 字符串 | "" 空串 |
?go语言没有自动类型转换,必须显示转换,表达式 T(v) 将值v转换为T类型
表数范围大的类型转换表数范围小的类型会有精度丢失的问题
例如:
package main
import "fmt"
func main(){
var i int8 = 3
var f float32 = float32(i)
fmt.Println(i)
fmt.Println(f)
}
方式1:fmt.springf("%参数",表达式)
方式2:需要使用strconv包的函数
%T 和?strconv. FormatXxxx? 的使用详见go的api文档
package main
import "fmt"
import "strconv"
func main(){
var i int = 19
var str1 string = fmt.Sprintf("%d",i)
fmt.Println(str1) //%d 10进制转字符串
var str2 string = strconv.FormatInt(int64(i),10)
fmt.Println(str2)
var f float64 = 19.0
var str3 string = fmt.Sprintf("%f",f)
var str4 string = strconv.FormatFloat(f,'f',9,64)
fmt.Println(str3) //%f 浮点型转字符串
fmt.Println(str4)
}
使用strconv包的函数,详见go语言的api
string转其他类型的时候必须是有效的数据,否者会转为对应的默认值
package main
import "fmt"
import "strconv"
func main(){
var s1 string = "true"
var b bool
/*
ParseBool 函数有两个返回值(value bool,err error)
value是我们需要的数据,err是出现的错误
err可以使用 _ 忽略
*/
b , _= strconv.ParseBool(s1)
fmt.Println("b的类型是:%T,b=%v ",b,b)
}