golang中x.(type)只能在switch中使用

例如:

 

[plain]  view plain  copy
 
  1. func MyPrintf(args ...interface{}) {  
  2. for _, arg := range args {  
  3. switch arg.(type) {  
  4. case int:  
  5. fmt.Println(arg, "is an int value.")  
  6. case string:  
  7. fmt.Println(arg, "is a string value.")  
  8. case int64:  
  9. fmt.Println(arg, "is an int64 value.")  
  10. default:  
  11. fmt.Println(arg, "is an unknown type.")  
  12. }  
  13. }  
  14. }  

 

packagemain
 
  
import(
    ."fmt"
    "strconv"
)
 
  
typeElementinterface{}
 
  
typeList[]Element
 
  
typepersonstruct{
    namestring
    ageint
}
 
  
func(pperson)String()string{
    return"(name:"+p.name+"-age:"+strconv.Itoa(p.age)+"years"
}
 
  
funcmain(){
 
  
    list:=make(List,3)
    list[0]=1
    list[1]="hello"
    list[2]=person{"TimLu",29}
    forindex,element:=rangelist{
        //        Println(element.(type))
        switchvalue:=element.(type){
        caseint:
            Printf("list[%d]isanintanditsvalueis%d\n",index,value)
        casestring:
            Printf("list[%d]isastringanditsvalueis%s\n",index,value)
        caseperson:
            Printf("list[%d]isaPersonanditsvalueis%s\n",index,value)
        default:
            Println("list[%d]isofadifferenttype",index)
        }
 
  
    }
    //    forindex,element:rangelist{
            switchvalue:=element.(type){
 
  
            }
    //Println(element.(type))
 
  
    //    }
}

 

 
  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值