例如:
- func MyPrintf(args ...interface{}) {
- for _, arg := range args {
- switch arg.(type) {
- case int:
- fmt.Println(arg, "is an int value.")
- case string:
- fmt.Println(arg, "is a string value.")
- case int64:
- fmt.Println(arg, "is an int64 value.")
- default:
- fmt.Println(arg, "is an unknown type.")
- }
- }
- }
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中,我们可以使用内置的`crypto/x509`包来处理这些任务。以下是一些关键步骤: 1. **读取证书文件**: 使用`ioutil.ReadFile`读取.crt文件,然后使用`x509.ParseCertificate`解析证书。 ```go ...
- **简短声明**:在函数体内,可以使用 `:=` 运算符进行简短声明和初始化,如 `x := 123`。需要注意的是,这种方式可能会导致在函数内部无意间修改全局变量的问题,因为编译器默认认为这是一个新的局部变量。 - **...
- `default`:在`switch`语句中用于指定默认分支。 - `func`:用于定义函数。 - `interface`:定义接口类型。 - `select`:用于处理多个通信操作。 - `case`:在`switch`语句中定义一个分支。 - `defer`:延迟执行...
### Golang 使用接口实现泛型的方法详解 #### 引言 在 Go 语言中,泛型的概念直到 Go 1.18 才正式引入。在此之前,开发者常常通过接口(interface)来实现类似泛型的效果。本文将深入探讨如何在 Go 语言中利用接口...
2.4 Installing Go on an OS X system.............................................................................21 2.5 Installing Go on a Windows system..................................................
- **局部作用域**:在函数内部定义的变量只能在该函数内部访问。 - **全局作用域**:在整个程序中都可以访问的变量。 **5.10 注释** - **单行注释**:使用`//`。 - **多行注释**:使用`/* */`。 #### 六、基础...
The Way to Go,: A Thorough Introduction to the Go Programming Language 英文书籍,已Cross the wall,从Google获得书中源代码,分享一下。喜欢请购买正版。 目录如下: Contents Preface......................
- 在终端或命令提示符中输入`go version`确认安装是否成功。 #### 三、编写第一个Go程序 - **程序结构**: ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` - **保存...
在Go语言中,一个典型的"Hello World"程序如下所示: ```go package main import "fmt" func main() { fmt.Println("Hello, world!") } ``` #### 编译和运行代码 为了编译并运行Go代码,你需要安装Go环境。...
Go-sandbox是一个学习和探索Golang基本语法的项目,它为初学者提供了一个实践环境,以便更好地理解和掌握Go语言的核心特性。在这个项目中,你将深入了解到Go语言的方方面面,包括变量、常量、数据类型、控制结构、...
- 结构:`switch expression { case x, y: do something; case v, w: do something else; default: }` - 特点:无需使用`break`语句;表达式仅计算一次;支持多用例。 #### 三、进一步学习资源推荐 - **官方文档...
- **运行程序**:保存文件为`hello.go`,然后在命令行中使用`go run hello.go`命令运行程序。 #### 四、变量和数据类型 - **变量声明**:使用`var`关键字声明变量。 ```go var name string = "Alice" var age ...
Go语言,通常简称为Golang,是由Google在2009年推出的一种开源编程语言。它的设计目标是提供一种简洁、高效、并发性良好的编程环境,适用于现代分布式系统、网络和云计算应用。Go语言语法简洁明了,易于学习,同时也...
在编程世界中,Go语言(也称为Golang)是由Google开发的一种静态类型的、编译型的、并发型的、垃圾回收的、具有C风格语法的编程语言。它旨在提高开发效率,提供高效的并发处理能力,并简化系统编程。"Golang_...
### Golang学习笔记(二):类型、变量、常量 #### 1. 基本类型 在Go语言中,基本数据类型是程序构建的基础。以下为Go语言中的基本类型及其特点: - **布尔类型 (bool)**: 表示真和假两个状态,其值只能是`true`...
除了基本类型外,Go还允许开发者定义自己的类型,这可以通过在现有类型基础上使用`type`关键字实现。 例如: ```go type Person struct { Name string Age int } func main() { var p Person p.Name = "张三" ...
在Go语言中,函数是程序的基本执行单元,可以接受参数并返回结果。而方法则是与特定类型关联的函数,通过类型接收者来调用。 例如: ```go package main import "fmt" // 函数 func add(x, y int) int { return x...
Go 语言,也被称为 Golang,是 Google 推出的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它旨在提高开发效率,简化多核和分布式系统程序的设计。本学习笔记将从零开始,带你一步步走进 Go 语言的...
用户可以通过Go语言官网下载安装包,安装完成后即可在本地环境中使用Go语言进行开发。 ##### 前身 Go语言是在吸取了多种语言优点的基础上发展起来的,其设计理念受到了C语言、Pascal等早期编程语言的影响。 #### ...
在Go语言中,可以在函数定义时为返回值命名,这有助于提高代码的可读性和简洁性。 ```go func swap(x, y string) (string, string) { return y, x } ``` **2.4 延迟代码** `defer`语句可以确保一段代码在函数...