索引:

1、Java

public class Animal {
// 接受可变参数的方法
void eat(String... Objects) {
for (String x : Objects) {
System.out.println("我吃了一个" + x + "!");
}
}
// 调用示例
public static void main(String[] args) {
Animal dada = new Animal();
dada.eat("苹果", "南瓜饼", "土豆");
}
/* outputs:
我吃了一个苹果!
我吃了一个南瓜饼!
我吃了一个土豆!
*/
}

2、Python

>>> def f(*args, **kw):
... print(args)
... print(kw)
...
>>> f(1, 2, 3, name = 'dada', age = 5)
(1, 2, 3)
{'age': 5, 'name': 'dada'}

可以理解为将位置参数收集为一个叫做args的tuple,将关键字参数收集为一个叫做kw的dict。

PS. 位置参数、关键字参数应该是Python特有的...

3、C++

#include <iostream>
#include <initializer_list>
using namespace std;
int sum(initializer_list<int> il)
{
int sum = ;
for (auto &x : il) {
sum += x;
}
return sum;
}
int main()
{
cout << sum({, , , , }) << endl; // output=15
return ;
}

4、js

const ilike = (...foods) => {
for (let x of foods) {
console.log(`i like eat ${x}`);
}
};
ilike('apple', 'chicken');
=> i like eat apple
=> i like eat chicken

PS. 请忽略语法错误...

三点号还能这么用:

let words = ["never", "fully"];
console.log(["will", ...words, "understand"]);
// → ["will", "never", "fully", "understand"]

编程语言基础:用“收集器”理解各种语言(C++、Java、Python)中的可变参数!的更多相关文章

  1. 理解 Python 中的可变参数 *args 和 **kwargs:

    默认参数:  Python是支持可变参数的,最简单的方法莫过于使用默认参数,例如: def getSum(x,y=5): print "x:", x print "y:& ...

  2. 深入理解python中函数传递参数是值传递还是引用传递

    深入理解python中函数传递参数是值传递还是引用传递 目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用 ...

  3. C语言中的可变参数-printf的实现原理

    C语言中的可变参数-printf的实现原理 在C/C++中,对函数参数的扫描是从后向前的.C/C++的函数参数是通过压入堆栈的方式来给函数传参数的(堆栈是一种先进后出的数据结构),最先压入的参数最后出 ...

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

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

  5. C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例) .

    我们在C语言编程中会遇到一些参数个数可变的函数,一般人对它的实现不理解.例如Printf(): Printf()函数是C语言中非常常用的一个典型的变参数函数,它 的原型为: int printf( c ...

  6. 各种语言中的可变参数(java、python、c++、javascript)

    索引: java python c++ js 1.Java public class Animal { // 接受可变参数的方法 void eat(String... Objects) { for ( ...

  7. C语言中的可变参数函数

    C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外 ...

  8. c语言中的# ## 可变参数宏 ...和_ _VA_ARGS_ _

    1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串.例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字 ...

  9. 【C语言】模拟实现printf函数(可变参数)

    一.printf函数介绍 printf功能 printf函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息. printf原型 int printf( const char* format ...

随机推荐

  1. 关于C++的const对象

    对于const类对象,类指针, 类引用, 只能调用类的const成员函数. 1.const成员函数不允许被修改它所在对象的任何一个成员变量. 2.const成员函数能访问对象的const成员, 而其他 ...

  2. 转:微信生成二维码java

    package com.wepayweb.weixin.util.device; /*** * V型知识库 www.vxzsk.com */ import java.io.BufferedReader ...

  3. PHP文件上传处理

    web中,文件上传是一个很常用的功能.如:上传头像.上传图片.这些提交到后台的图片都要交给后端处理.php提供了几个上传处理的函数,我把它们封装成类,以便日后使用. 处理流程(可能有不合理的地方,用时 ...

  4. BZOJ 1198: [HNOI2006]军机调度(搜索)

    直接暴搜就行了= = CODE: #include<cstdio> #include<iostream> #include<cstring> #include< ...

  5. android学习9——Handler简单用法

    Handler用来发消息和处理消息.典型的用法是更新界面.android不允许在子线程里面更新界面,通常是把Handler传到子线程中,在子线程里通过sendEmptyMessage函数发消息.Han ...

  6. ubuntu14.04 + OpenCV2.4.9 配置方法

    1.  安装openCV 所需依赖库或软件: sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-de ...

  7. 一张图理解RACSignal的Subscription过程

    通过下面一张图理解RACSignal的调用过程: 创建signale RACSignal通过子类[RACDynamicSignal createSignal:]方法获得Signal,并将disSubs ...

  8. Linux JDK+TOMCAT+MYSQL+redis 安装日志

    检查是否安装iptables #先检查是否安装了iptablesservice iptables status#安装iptablesyum install -y iptables#升级iptables ...

  9. 简单分析beyond作曲

    本人绝对是业余的哈 业余到什么水平呢?正在练习爬格子,还是一个星期练几次那种 先说下<海阔天空> 6,5,4,3 1,2,3,4 简单是简单得不得了,声从低到高,然后再从高到低,产生一种回 ...

  10. .Net3月份开发札记

    筛选数据 需求:如果数据库中存在OrderNum相同,且IsDefault不同的记录,那么IsDefault值为0的记录将替换值为1的记录(IsDefault值为1的记录不展示). 由于查出来的数据不 ...