Golang--不定参数类型
1、不定参数类型
不定参数是指函数传入的参数个数为不定数量。
package main import (
"fmt"
) //不定参数函数
func Add(a int, args ...int) (result int) {
result += a
for _, arg := range args {
result += arg
}
return
} func main() {
fmt.Println(Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))
}
代码中的args是一个数组切片,而且只能放在参数中的最后面。
2、不定参数的传递
package main import (
"fmt"
) //不定参数函数
func Add(a int, args ...int) (result int) {
result += a
for _, arg := range args {
result += arg
}
return
} func SetData(args ...int) (result int) {
//不定参数的传递
return Add(1, args...)
} func main() {
fmt.Println(SetData(1, 2, 3)) //输出7
array := []int{1, 2, 3, 4}
fmt.Println(Add(1, array...)) //输出11
}
3、任意类型的不定参数
package main import (
"fmt"
) /*
任意类型的不定参数,用interface{}表示
*/
func MyPrintf(args ...interface{}) {
for _, arg := range args { //迭代不定参数
switch arg.(type) {
case int:
fmt.Println(arg, "is int")
case string:
fmt.Println(arg, "is string")
case float64:
fmt.Println(arg, "is float64")
case bool:
fmt.Println(arg, " is bool")
default:
fmt.Println("未知的类型")
}
}
} func main() {
/*输出结果:
1 is int
test is string
1.5 is float64
false is bool
-1.5 is float64
*/
MyPrintf(1, "test", 1.5, false, -1.5)
}
Golang--不定参数类型的更多相关文章
- Java_可变参数类型
Java方法中的可变参数类型,也称为不定参数类型,是一个非常重要的概念 举栗子 public class TestVarArgus { public static void dealArray(int ...
- 深度解析Java可变参数类型以及与数组的区别
注意:可变参数类型是在jdk1.5版本的新特性,数组类型是jdk1.0就有了. 这篇文章主要介绍了Java方法的可变参数类型,通过实例对Java中的可变参数类型进行了较为深入的分析,需要的朋友可以参考 ...
- golang 防SQL注入 基于反射、TAG标记实现的不定参数检查器
收到一个任务,所有http的handler要对入参检查,防止SQL注入.刚开始笨笨的,打算为所有的结构体写一个方法,后来统计了下,要写几十上百,随着业务增加,以后还会重复这个无脑力的机械劳作.想想就l ...
- golang中不定参数与数组切片的区别
package main import "fmt" func main() { myfunc1(, , , ) //传递不定数量的参数 myfunc2([], , , }) //传 ...
- C# 动态(不定)类型和不定参数数量,使用param写入CSV文档的最简单方法,提供excel(或记事本)阅读支持格式
在开发一个项目,使用C#写入CSV文件时,虽并未遇到太多阻碍,但是很多小伙伴估计和我有过同样的想法.简单的写入CSV,固定参数数量就好了很简单写完.但是如果遇到你得到的数据参数数量和参数类型未知或者动 ...
- C语言函数不定参数实现方式
函数如何实现不定参数: 由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦,即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,提出了指针参数来解决问题. (1)va_ ...
- dataframe的select传入不定参数
在提取 dataframe 里面的列时,需要传入不定参数,即 dataframe.select(args) .例如某个 dataframe 如下: 一般提取某列或者某几列的时候是这样子写的: data ...
- printf不定参数
title: printf不定参数 tags: C ARM date: 2018-10-21 12:14:58 --- 不定参数的传递 函数调用时参数传递是使用堆栈来实现的,参数入栈顺序是从右向左,在 ...
- c++不定参数函数
不定参数当年做为C/C++语言一个特长被很多人推崇,但是实际上这种技术并没有应用很多.除了格式化输出之外,我实在没看到多少应用.主要原因是这种技术比较麻烦,副作用也比较多,而一般情况下重载函数也足以替 ...
随机推荐
- Delphi调用java so
package hardware.print; public class printer { static public native int Open(); } jni导出的函数是 Java_har ...
- 深入 AngularUI Router
翻译:深入 AngularUI Router 原文地址:http://www.ng-newsletter.com/posts/angular-ui-router.html ui-router: htt ...
- 12款 JavaScript 表格控件(DataGrid)
JavaScript 表格控件可以操作大数据集的 HTML表格,提供各种功能,如分页.排序.过滤以及行编辑.在本文中,我们整理了13个最好的 JavaScript 表格插件分享给开发人员,开发者可以很 ...
- 【iCore4 双核心板_uC/OS-II】例程八:消息邮箱
一.实验说明: 消息邮箱是uC/OS-II中的另一种通信机制,可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量.通常该指针指向一个包含了“消息”的特定数据结构. 二.实验截图: ...
- hdoj:2049
#include <iostream> using namespace std; ]; /* n 个 数中 m个错排 转化为:充n个数中选取m个数,共有C(n,m)中,选取的m个数进行全部 ...
- rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: PROTOCOL_ERROR
使用grpc-go调用grpc服务端时,出现rpc error: code = Internal desc = stream terminated by RST_STREAM with error c ...
- Linux 特殊字符_008
Linux 特殊字符用于用户命令行bash环境处理数据,达到一种命令简化使用的功能 通配符 符号 功能 备注 * 代表所有(0到多个)字符 ? 代表任意一个字符 [ ] 匹配[ ]任意一个字符,写法[ ...
- SpringBoot系统列 1 - HelloWorld!
学习SpringBoot系统列之HelloWorld! 1.新建一个Maven项目 2.添加POM配置 <parent> <groupId>org.springframewor ...
- python把文件从一个目录复制到另外一个目录,并且备份
#!/usr/bin/python # -*- coding: utf-8 -*- import os,sys,md5,datetime,shutil,time,zipfile,chardet # c ...
- Cocos2dx项目在各种IDE中新建类之后的可行编译方式
注:这里说可行,但是并不是最好的,只是可以完成编译. 1.linux+code::blocks下的cocos2dx项目新建一个类TestScene.h 新建的TestScene.h和TestScene ...