03 | 变量与类型

2020-03-21  本文已影响0人  刀斧手何在

声明

func TestVal(t *testing.T){
    var s0 string = "hello"
    s1 := "world"
    t.Log(s0,s1)
}
image.png
  1. Go是静态类型语言,类型推断是在编译期完成,不会对运行效率产生影响
  2. 短变量声明多用于if for switch语句的临时变量,只能用于函数体内部
  3. 短变量声明的好处:可以对同一代码块的变量重声明。例如以下这种情况就只能用短变量声明
func TestVal(t *testing.T){
    for var i = 0; i<5; i++ {
             t.Log(i)
        }
}
result: expected operand, found 'var'

变量类型

func TestType(t *testing.T){
    var s1 string = "hello"
    t.Log(reflect.TypeOf(s1))
}
//反射
func TestType(t *testing.T){
    var s1 string = "a"
    s2,isString := interface{}(s1).(string)
    i,isInt := interface{}(s1).(int)
    t.Log(s2,isString)
    t.Log(i,isInt)
}
//利用断言来判断 转换类型
type str string
func TestType(t *testing.T){
    var s1 str = "hello"
    s2 := str("world")
    t.Log(s1,s2)
}

类型分类

上一篇 下一篇

猜你喜欢

热点阅读