注意: go语言对所有的未初始化的变量(全局变量/局部变量)都会默认初始化,前提是必须标明变量的类型;
如果未初始化的变量没有标明数据类型的话,go在初始化的时候,就不知道变量的数据类型,也不知道默认初始化值是多少;
就会出现编译错误。
对于数字型的: 0 bool : false 字符串默认初始化是空字符串
1. 全局变量的定义:
(1)只定义,不手动初始化: 必须写明变量的类型,让go 编译器 去初始化;
var( a int b string c float)
var a string ; var a,b int
( 2 ) 定义并手动初始化: var <变量名称> [变量类型] = <表达式>
var a = 2; 或者 var a int =12 ; // go编译器 自动识别变量的数据类型(所有变量都可以使用类型推断)
var (a =12 b="string" dd =34)或者var (a int =12 b string ="string")
(3)部分初始化,部分不初始化:
var (
a int
b =12
)
(4) 全局变量的定义只能使用 var 关键字
(5)同时定义多个全局变量:可使用 var() 的方式进行简写
2. 局部变量:
对于局部变量来说,它支持全局变量的所有定义方法;并且还有自己独特的定义初始化方法:
使用 定义初始化 符号 :=(只支持局部变量的定义)
a := 12 ; //定义一个a变量,并同时初始化为12
定义多个局部变量: a , b , c , d := 12, “string”,12.34 , 45 ;
//不能加 变量的数据类型
3.变量的类型转换
Go中不存在隐式转换,所有类型转换必须显式转换转换只能发生在两种相互兼容的类型之间
类型转换的格式:
<ValueA> [:]= <TypeOfValueA>(<ValueB>)
如: a := int(23); //定义一个a变量,并初始化为23
b = float32(34);
string() 表示将数据转换成文本格式,因为计算机中存储的任何东西 本质上都是数字,
因此此函数自然地认为我们需要的是用数字65表示 的文本 A。
类似c语言中的int 和 char