`

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))

    //    }
}

 


 

 

分享到:
评论

相关推荐

    golang解析数字证书

    在Golang中,我们可以使用内置的`crypto/x509`包来处理这些任务。以下是一些关键步骤: 1. **读取证书文件**: 使用`ioutil.ReadFile`读取.crt文件,然后使用`x509.ParseCertificate`解析证书。 ```go ...

    golang 学习笔记

    - **简短声明**:在函数体内,可以使用 `:=` 运算符进行简短声明和初始化,如 `x := 123`。需要注意的是,这种方式可能会导致在函数内部无意间修改全局变量的问题,因为编译器默认认为这是一个新的局部变量。 - **...

    Go语言学习之认识Golang

    - `default`:在`switch`语句中用于指定默认分支。 - `func`:用于定义函数。 - `interface`:定义接口类型。 - `select`:用于处理多个通信操作。 - `case`:在`switch`语句中定义一个分支。 - `defer`:延迟执行...

    Golang 使用接口实现泛型的方法示例

    ### Golang 使用接口实现泛型的方法详解 #### 引言 在 Go 语言中,泛型的概念直到 Go 1.18 才正式引入。在此之前,开发者常常通过接口(interface)来实现类似泛型的效果。本文将深入探讨如何在 Go 语言中利用接口...

    The way to go

    2.4 Installing Go on an OS X system.............................................................................21 2.5 Installing Go on a Windows system..................................................

    手撕Go语言v1.1.pdf

    - **局部作用域**:在函数内部定义的变量只能在该函数内部访问。 - **全局作用域**:在整个程序中都可以访问的变量。 **5.10 注释** - **单行注释**:使用`//`。 - **多行注释**:使用`/* */`。 #### 六、基础...

    [Go语言入门(含源码)] The Way to Go (with source code)

    The Way to Go,: A Thorough Introduction to the Go Programming Language 英文书籍,已Cross the wall,从Google获得书中源代码,分享一下。喜欢请购买正版。 目录如下: Contents Preface......................

    基础的Go语言教程,适合初学者入门

    - 在终端或命令提示符中输入`go version`确认安装是否成功。 #### 三、编写第一个Go程序 - **程序结构**: ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` - **保存...

    学习Go语言

    在Go语言中,一个典型的"Hello World"程序如下所示: ```go package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` #### 编译和运行代码 为了编译并运行Go代码,你需要安装Go环境。...

    Go-sandbox:Golang的基本语法

    Go-sandbox是一个学习和探索Golang基本语法的项目,它为初学者提供了一个实践环境,以便更好地理解和掌握Go语言的核心特性。在这个项目中,你将深入了解到Go语言的方方面面,包括变量、常量、数据类型、控制结构、...

    一通百通,Go语言入门如此轻松.pdf

    - 结构:`switch expression { case x, y: do something; case v, w: do something else; default: }` - 特点:无需使用`break`语句;表达式仅计算一次;支持多用例。 #### 三、进一步学习资源推荐 - **官方文档...

    Go语言基础入门教程,并介绍了Go语言编写简单的程序、声明变量、使用流程控制语句、定义函数、使用结构体和方法、进行并发编程等技能

    - **运行程序**:保存文件为`hello.go`,然后在命令行中使用`go run hello.go`命令运行程序。 #### 四、变量和数据类型 - **变量声明**:使用`var`关键字声明变量。 ```go var name string = "Alice" var age ...

    golang教程

    Go语言,通常简称为Golang,是由Google在2009年推出的一种开源编程语言。它的设计目标是提供一种简洁、高效、并发性良好的编程环境,适用于现代分布式系统、网络和云计算应用。Go语言语法简洁明了,易于学习,同时也...

    Golang_Learning:用于定位的基本Golang语法的一些示例

    在编程世界中,Go语言(也称为Golang)是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、具有C风格语法的编程语言。它旨在提高开发效率,提供高效的并发处理能力,并简化系统编程。"Golang_...

    Golang学习笔记(二):类型、变量、常量

    ### Golang学习笔记(二):类型、变量、常量 #### 1. 基本类型 在Go语言中,基本数据类型是程序构建的基础。以下为Go语言中的基本类型及其特点: - **布尔类型 (bool)**: 表示真和假两个状态,其值只能是`true`...

    go语言实战

    除了基本类型外,Go还允许开发者定义自己的类型,这可以通过在现有类型基础上使用`type`关键字实现。 例如: ```go type Person struct { Name string Age int } func main() { var p Person p.Name = "张三" ...

    Go语言与微服务架构教程

    在Go语言中,函数是程序的基本执行单元,可以接受参数并返回结果。而方法则是与特定类型关联的函数,通过类型接收者来调用。 例如: ```go package main import "fmt" // 函数 func add(x, y int) int { return x...

    从零开始学 Go,Go 入门的学习笔记

    Go 语言,也被称为 Golang,是 Google 推出的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它旨在提高开发效率,简化多核和分布式系统程序的设计。本学习笔记将从零开始,带你一步步走进 Go 语言的...

    go语言中文PDF文档

    用户可以通过Go语言官网下载安装包,安装完成后即可在本地环境中使用Go语言进行开发。 ##### 前身 Go语言是在吸取了多种语言优点的基础上发展起来的,其设计理念受到了C语言、Pascal等早期编程语言的影响。 #### ...

    go语言学习

    在Go语言中,可以在函数定义时为返回值命名,这有助于提高代码的可读性和简洁性。 ```go func swap(x, y string) (string, string) { return y, x } ``` **2.4 延迟代码** `defer`语句可以确保一段代码在函数...

Global site tag (gtag.js) - Google Analytics