首页 > 其他分享 >go语言:可变参数

go语言:可变参数

时间:2023-08-21 16:14:26浏览次数:29  
标签:args int fmt arg value Println 参数 可变 go

1、go 语言通过占位符... 实现可变参数。
2、对于未知类型通过 interface{}实现。interface{}可以理解为c/c++中void类型

具体如下:

package main

import (
	"fmt"
)
/// 此时需指定类型int
func TestFuncInt(args ... int) {
	fmt.Println(args)
}
/// 此时需指定类型string
func TestFuncStr(args ...string) {
	fmt.Println(args)
}


/// interface{}可以理解为c/c++中void类型
func TestFuncAll(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.")
		}
	}
}

func main() {
	TestFuncInt(2, 3, 5)
	TestFuncStr("str", "is", "test")

	/// 支持slice方式
	data := []int{1,2,3}
	TestFuncInt(data...)

	TestFuncAll(2, "str", 4)
}

输出

[2 3 5]
[str is test]
[1 2 3]
2 is an int value.
str is a string value
4 is an int value.

资料:
https://zhuanlan.zhihu.com/p/411663311
https://www.jianshu.com/p/01431eafbed2

标签:args,int,fmt,arg,value,Println,参数,可变,go
From: https://www.cnblogs.com/xiaohaigegede/p/17646256.html

相关文章

  • 如何使用Docker部署 Go WEB应用
    如何使用Docker部署GoWEB应用本文介绍了如何使用Docker以及Docker-compose部署我们的GoWeb程序。为什么需要使用Docker?使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。想象一下你是否也会遇到下面这个场景,你在本地开发了你的......
  • 每日一库:gosec
    gosec是一个用于在Go代码中查找安全问题的开源工具,它可以帮助发现可能的漏洞和潜在的安全风险。以下是关于gosec的详细介绍:1.工具概述:gosec是一个静态分析工具,用于扫描Go代码以查找潜在的安全问题。它可以识别常见的代码漏洞、敏感信息泄露和其他安全问题,帮助开发人员......
  • go开发exe怎么加壳
    go开发语言开发的程序可以编译成exe程序,发布之前需要做加壳防止被逆向出源码。exe加壳工具的选择至关重要,以下是go开发的程序加密的技术。虚拟化:将原始指令转换为⾃定义的虚拟机指令,交由配套虚拟机系统模拟执⾏。此方式实现的安全度目前最高,同样性能损耗最大,故建议核心函数保护即可......
  • 如何利用Go编辑Nginx规则实现动态操作Nginx配置
    随着微服务的普及和容器化技术的发展,Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛应用于各种场景。然而,传统的静态编辑Nginx配置文件的方式,往往无法满足动态修改配置的需求。本文将介绍如何使用Go语言编辑Nginx规则,实现动态操作Nginx配置。安装依赖库在开始之......
  • Go语法糖
    :=和var短变量声明:使用:=操作符可以在不显式指定变量类型的情况下,根据右侧的表达式自动推断变量类型。这种方法声明和定义绑定在一起一步到位。name:="Pey"var:go中定义过的变量必须使用,不然会报错。使用var既可以只声明变量,也可以同时定义变量。varnamestring ......
  • Django 解决同源跨域问题
    Django解决同源跨域问题目录Django解决同源跨域问题1sitea1.1urls配置1.2app01.views配置1.3index.html配置2siteb2.1urls配置2.2app01.views配置由于浏览器具有同源策略的限制:在发送Ajax请求时,如果当前浏览器的URL是a.com,而页面中向b.com发送ajax请求,请求可以正......
  • django 上传文件
    前后端分离下django框架上传文件实现方式实现方式一,通过model字段FileFiled()来实现model类classReport(models.Model):p_id=models.PositiveIntegerField('病人ID')file=models.FileField(upload_to='uploads/report/%Y/%m/%d/')def__str__(self):......
  • 网站LOGO
    网站LOGO<ahref="{$site[site_url]}"><imgsrc="{$site[site_logo]}"title="{$site[site_name]}"></a>版权声明{$site[site_copyright]}网站备案号备案号:<ahref="http://beian.miit.gov.cn/"target="_blank&......
  • 利用pycharm创建第一个django API项目
    From:  ICT浪子 ICT浪子 2023-08-1916:34 发表于湖北---------------------------------------------------------------------------一、pycharm操作1、打开PyCharm,进入欢迎界面。2、点击"CreateNewProject"或选择"File"->"NewProject"。3、在新项目对话框中,......
  • 【pandas小技巧】--category类型补充
    category类型在pandas基础系列中有一篇介绍数据类型的文章中已经介绍过。category类型并不是python中的类型,是pandas特有的类型。category类型的优势那篇文章已经介绍过,当时只是介绍了如何将某个列的数据转换成category类型,以及转换之后给程序性能上带来的好处。本篇将补充介绍......