基本数据类型(续)
基本数据类型的默认值
- 在Golang中数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值(默认值又叫零值)
- 分别是int类型(0)、float类型(0)、bool类型(false)、string类型(“”),以上跟Java默认值一样
基本数据类型之间的转换
- Go在不同类型的变量之间赋值时需要显式转换,并且只有显式转换(强制转换)
- 语法:T(v) 将值v转换为类型T。T : 就是数据类型,v : 就是需要转换的变量(跟其他语言强制转换语法稍微不同。其他语言是在赋值前加上(需要强制转换的类型),又或者调用相应api,如Java的tostring来进行转换)
基本数据类型转为string方法:
方式1:fmt.Sprintf("%参数",表达式) (%参数,跟c的printf需要填的基本一样)
方式2:使用strconv包的函数,如strconv.FormatBool,跟Java的format语法很像,要把什么类型的转换为string。那也就是Format+对应的类型(首字母大写)
import "fmt"
func main(){
var age int = 18
//&符号+变量 就可以获取这个变量内存的地址
fmt.Println(&age) //0xc0000a2058
//定义一个指针变量:
//var代表要声明一个变量
//ptr 指针变量的名字
//ptr对应的类型是:*int 是一个指针类型 (可以理解为 指向int类型的指针)
//&age就是一个地址,是ptr变量的具体的值
var ptr *int = &age
fmt.Println(ptr)
fmt.Println("ptr本身这个存储空间的地址为:", &ptr)
//想获取ptr这个指针或者这个地址指向的那个数据:
fmt.Printf("ptr指向的数值为:%v", *ptr) //ptr指向的数值为:18
}
以上代码块可知,指针声明则和c/c++基本一致,var 变量名称 *类型 在go则代表声明了一个指针型变量,直接用这个变量则表示所存储的值的地址,*变量则代表这个存储的值,&变量则代表这个指针型变量本身的地址。