package main

import "fmt"

/*
常量,变量,函数---源代码的成员
给成员命名的字符称之为【标识符】
合法的标识符有:大小写字母,数字,下划线
命名时不能以数字开头
*/ func Add0() {
fmt.Println("Add0")
} /*有参函数*/
func Add1(arg int) {
fmt.Println("Add1", arg)
} /*多个参数,同种类型*/
func Add2(a int, b int) {
sum := a + b
fmt.Println("参数之和是", sum)
} func Add3(a, b int) {
sum := a + b
fmt.Println("参数之和是", sum)
} /*多个参数,不同类型*/
func Add4(a, b int, c float64, d float64) {
aFloat := float64(a)
bFloat := float64(b)
sum := aFloat + bFloat + c + d
fmt.Println("参数之和是", sum)
} /*
不定长参数
args 接受任意多个整型参数
*/
func Add5(args ...int) {
fmt.Println(args)
fmt.Printf("args 的类型是%T\n", args)
/*
使用内建函数len()求args的长度
内建函数(buildin function)是指无需主语,直接调用的函数
*/
fmt.Printf("args 的长度是%d\n", len(args))
//遍历不定长参数中的每一个数据
for i := 0; i < len(args); i++ {
// args[i]是参数中第i个数据
fmt.Printf("args中第%d个参数是%v\n", i, args[i]) // []int 整型切片(一种数据容器)
}
//求和
var sum int
for i := 0; i < len(args); i++ {
sum += args[i]
}
fmt.Printf("参数求和为:%d\n", sum)
} /*
定长参数和不定长参数混用 不定长参数只能有一个
不定长参数必须在最后一个
*/ func Add6(a, b int, args ...float64) {
aFloat := float64(a)
bFloat := float64(b)
sum := aFloat + bFloat
for i := 0; i < len(args); i++ {
sum += args[i]
}
fmt.Printf("参数之和:%f\n", sum)
} func main() {
Add4(1, 2, 3, 4)
Add5(1, 2, 3, 4, 7)
Add6(1, 2, 3, 4, 10)
}

输出:

参数之和是 10
[1 2 3 4 7]
args 的类型是[]int
args 的长度是5
args中第0个参数是1
args中第1个参数是2
args中第2个参数是3
args中第3个参数是4
args中第4个参数是7
参数求和为:17
参数之和:20.000000

  

Go语言的函数02---参数的更多相关文章

  1. C语言中函数可变参数解析

    大多数时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数.但在某些情况下希望函数的参数个数可以根据需要确定.典型的例子有 大家熟悉的函数printf().scanf ...

  2. 【C/C++开发】C语言实现函数可变参数

    函数原型: int printf(const char *format[,argument]...)        返 回 值: 成功则返回实际输出的字符数,失败返回-1.  函数说明:        ...

  3. C语言之函数可变参数

    先上一段代码: #include<cstdarg> #include<iostream> #include<string> using namespace std; ...

  4. c语言main函数的参数argc,argv说明

    main函数参数argc,argv说明   C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(i ...

  5. c语言解决函数变参数问题 va_list

    前言:看到sprintf,swprintf之类的可变参数格式化函数,是否想过我们能写一个自定义的类似的函数吗?答案是很定的,下面来介绍一种方法,用va_list,va_start, va_end来实现 ...

  6. C语言main函数的参数

    在Windows下使用gcc编译器: 1.首先介绍下MinGW MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到 ...

  7. C/C++语言参数传递----函数/方法 参数的指针引用传递

    int m_value = 1; void func(int *p) { p = &m_value; } int main(int argc, char *argv[]) { int n = ...

  8. c语言main函数返回值、参数详解(返回值是必须的,0表示正常退出)

    C语言Main函数返回值 main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其它数字的含义则由系统决定.通常,返回非零代表程序异常退出. 很多人甚至市面上的一些书籍,都 ...

  9. C语言函数可变参数列表

    C语言允许使用可变参数列表,我们常用的printf函数即为可变参数函数,C标准库提供了stdarg.h为我们提供了这方面支持:该头文件提供了一些类型和宏来支持可变参数列表,包括类型va_list,宏v ...

  10. JavaScript进阶系列02,函数作为参数以及在数组中的应用

    有时候,把函数作为参数可以让代码更简洁. var calculator = { calculate: function(x, y, fn) { return fn(x, y); } }; var su ...

随机推荐

  1. 解决Android加固多进程ptrace反调试的思路整理

    本文博客链接:http://blog.csdn.net/qq1084283172/article/details/53613481 一.Android多进程反调试的原理代码 当ptrace附加目标进程 ...

  2. 使用同步或异步的方式完成 I/O 访问和操作(Windows核心编程)

    0x01 Windows 中对文件的底层操作 Windows 为了方便开发人员操作 I/O 设备(这些设备包括套接字.管道.文件.串口.目录等),对这些设备的差异进行了隐藏,所以开发人员在使用这些设备 ...

  3. windows-DLL注入

    DLL注入     刚刚整理的代码注入(远程线程注入)现在整理这个DLL注入,DLL注入比较常用,相比远程代码注入DLL注入没有什么太多的限制,而且实现起来比较简单,当然远程线程需要注意的问题DLL很 ...

  4. 40 图 |我用 Mac M1 玩转 Spring Cloud

    我的开源 Spring Cloud 项目 PassJava 一直可以在 Windows 上正常运行,最近不是换 Mac M1 了么,想把这个项目在 M1 上跑起来,毕竟我的那台 Windows 用起来 ...

  5. 【maven】理论知识

    Maven是跨平台的项目管理工具,主要服务于Java平台的项目构建.依赖管理. 项目构建 项目构建过程包括[清理项目]→[编译项目]→[测试项目]→[生成测试报告]→[打包项目]→[部署项目]这几个步 ...

  6. 数据表格 layui.table

    layui官网-表单 自动渲染 方法渲染 table.render,cols中的field是后台传递的data map.put("data",stuService.selectSt ...

  7. repo sync error: .repo/manifests/: contains uncommitted changes

    andorid 源码库同步,报错如标题,好几次想放弃,尝试了网上不少办法,无效, 最终从 stackoverflow 得到答案: After issued repo sync, I got a err ...

  8. mxgraph中mxStencil使用教程

    目录 标签嵌套关系 Shapes shape connections background foreground 其他样式 图形内部颜色绘制 封闭线段绘制 设置一条线的颜色大小 样例 官方文档:htt ...

  9. [MySQL数据库之表的约束条件:primary key、auto_increment、not null与default、unique、foreign key:表与表之间建立关联]

    [MySQL数据库之表的约束条件:primary key.auto_increment.not null与default.unique.foreign key:表与表之间建立关联] 表的约束条件 约束 ...

  10. 微信小程序组件设计规范

    微信小程序组件设计规范 组件化开发的思想贯穿着我开发设计过程的始终.在过去很长一段时间里,我都受益于这种思想. 组件可复用 - 减少了重复代码量 组件做为抽离的功能单元 - 方便维护 组件作为temp ...