29.笔记go语言——函数多类型参数
2017-10-02 12:18
197 查看
29.笔记go语言——函数多类型参数
如果希望在函数中传任意类型,可以指定类型为interface{}。下面是Go语言标准库中fmt.Printf()的函数原型:
func Printf(format string, args...interface{}) {
//...
}
用interface{}传递任意类型数据是Go语言的惯例用法。使用interface{}仍然是类型安全的,这和C/C++ 不太一样。
传入interface{}类型的数据。
import "fmt"
func MyPrintf(args ...interface{}) {
for_, arg := range args {
switcharg.(type) {
caseint:
fmt.Println(arg,"is an int value.")
casestring:
fmt.Println(arg,"is a string value.")
caseint64:
fmt.Println(arg,"is an int64 value.")
default:
fmt.Println(arg,"is an unknown type.")
}
}
}
func main() {
varv1 int = 1
varv2 int64 = 234
varv3 string = "hello"
varv4 float32 = 1.234
MyPrintf(v1,v2, v3, v4)
}
234is an int64 value.
hellois a string value.
1.234is an unknown type.
如果希望在函数中传任意类型,可以指定类型为interface{}。下面是Go语言标准库中fmt.Printf()的函数原型:
func Printf(format string, args...interface{}) {
//...
}
用interface{}传递任意类型数据是Go语言的惯例用法。使用interface{}仍然是类型安全的,这和C/C++ 不太一样。
传入interface{}类型的数据。
代码:
package mainimport "fmt"
func MyPrintf(args ...interface{}) {
for_, arg := range args {
switcharg.(type) {
caseint:
fmt.Println(arg,"is an int value.")
casestring:
fmt.Println(arg,"is a string value.")
caseint64:
fmt.Println(arg,"is an int64 value.")
default:
fmt.Println(arg,"is an unknown type.")
}
}
}
func main() {
varv1 int = 1
varv2 int64 = 234
varv3 string = "hello"
varv4 float32 = 1.234
MyPrintf(v1,v2, v3, v4)
}
执行:
1is an int value.234is an int64 value.
hellois a string value.
1.234is an unknown type.
相关文章推荐
- Go语言学习笔记(五) [函数]
- go语言笔记——是c开发的 lex yacc进行词法和语法分析,go不支持函数和运算符重载,不支持类型继承,也不支持断言,还有泛型
- Go语言学习笔记 -- 函数(2)
- Go语言学习笔记 -- 内建函数
- go语言函数参数与返回值示例,数组的简单应用
- Go语言学习笔记(三) [控制结构、内建函数]
- go语言函数作为参数传递
- go语言笔记——切片函数常见操作,增删改查和搜索、排序
- 34.笔记go语言——内建函数
- 56.笔记go语言——go的函数类型
- 50.笔记go语言——go语言函数细节
- Go语言学习笔记(五) [函数]
- C语言学习笔记29——函数与宏分析
- 36.笔记go语言——函数
- go语言:函数参数传递详解
- 3.笔记go语言——函数
- Go语言学习笔记---函数
- GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!
- Go语言学习笔记七: 函数
- go语言将函数作为参数传递