标签: variadic-functions

2149
推荐指数
17
解决办法
65万
查看次数

Java,参数中有3个点

以下方法中的3个点是什么意思?

public void myMethod(String... strings){
    // method body
}
Run Code Online (Sandbox Code Playgroud)

java variadic-functions

781
推荐指数
6
解决办法
34万
查看次数

如何在JavaScript中将"arguments"对象转换为数组?

argumentsJavaScript中的对象是一个奇怪的疣 - 它在大多数情况下就像一个数组,但它实际上并不是一个数组对象.因为它是真正的完全是另一回事,它没有从有用的功能Array.prototype类似forEach,sort,filter,和map.

使用简单的for循环从arguments对象构造一个新数组非常容易.例如,此函数对其参数进行排序:

function sortArgs() {
    var args = [];
    for (var i = 0; i < arguments.length; i++)
        args[i] = arguments[i];
    return args.sort();
}
Run Code Online (Sandbox Code Playgroud)

但是,这是一个相当可怜的事情,只需要访问非常有用的JavaScript数组函数.是否有使用标准库的内置方法?

javascript arrays sorting arguments variadic-functions

424
推荐指数
8
解决办法
18万
查看次数

在Go中连接两个切片

我正在尝试将切片[1, 2]和切片组合在一起[3, 4].我怎么能在Go中这样做?

我试过了:

append([]int{1,2}, []int{3,4})
Run Code Online (Sandbox Code Playgroud)

但得到了:

cannot use []int literal (type []int) as type int in append
Run Code Online (Sandbox Code Playgroud)

但是,文档似乎表明这是可能的,我错过了什么?

slice = append(slice, anotherSlice...)
Run Code Online (Sandbox Code Playgroud)

append variadic-functions go slice

411
推荐指数
8
解决办法
23万
查看次数

通过varargs参数潜在的堆污染

我理解当使用具有泛型类型的varargs时,Java 7会发生这种情况;

但我的问题是......

当Eclipse说"它的使用可能会污染堆?"时,Eclipse到底意味着什么呢?

@SafeVarargs注释如何阻止这种情况?

java eclipse generics variadic-functions

410
推荐指数
4
解决办法
10万
查看次数

为什么要使用params关键字?

我知道这是一个基本问题,但我找不到答案.

为什么要用它?如果你编写一个函数或一个使用它的方法,当你删除它时代码仍然可以正常工作,100%没有它.例如:

使用params:

static public int addTwoEach(params int[] args)
{
    int sum = 0;
    foreach (var item in args)
        sum += item + 2;
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

没有参数:

static public int addTwoEach(int[] args)
{
    int sum = 0;
    foreach (var item in args)
       sum += item + 2;
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

c# variadic parameter-passing variadic-functions params

326
推荐指数
7
解决办法
18万
查看次数

传递可变数量的参数

假设我有一个带有可变数量参数的C函数:如何调用另一个函数,该函数需要从其内部获取可变数量的参数,并将所有参数传递到第一个函数中?

例:

void format_string(char *fmt, ...);

void debug_print(int dbg_lvl, char *fmt, ...) {
    format_string(fmt, /* how do I pass all the arguments from '...'? */);
    fprintf(stdout, fmt);
 }
Run Code Online (Sandbox Code Playgroud)

c variadic-functions

325
推荐指数
7
解决办法
17万
查看次数

我可以将数组作为参数传递给Java中带有变量参数的方法吗?

我希望能够创建一个像这样的函数:

class A {
  private String extraVar;
  public String myFormat(String format, Object ... args){
    return String.format(format, extraVar, args);
  }
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是在方法中args处理,因此是单个参数,而我希望每个in 都作为新参数传递.既然也是一个带有变量参数的方法,这应该是可能的.Object[]myFormatString.formatObjectargsString.format

如果这是不可能的,有没有像这样的方法String.format(String format, Object[] args)?在这种情况下,我可以在前面加上extraVarargs使用新的数组,并把它传递给该方法.

java arrays backwards-compatibility variadic-functions

256
推荐指数
5
解决办法
20万
查看次数

C++中可变数量的参数?

如何编写一个接受可变数量参数的函数?这可能吗,怎么样?

c++ variadic-functions

251
推荐指数
10
解决办法
31万
查看次数

如何将ArrayList传递给varargs方法参数?

基本上我有一个位置的ArrayList:

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();
Run Code Online (Sandbox Code Playgroud)

下面我称之为以下方法:

.getMap();
Run Code Online (Sandbox Code Playgroud)

getMap()方法中的参数是:

getMap(WorldLocation... locations)
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不确定如何将整个列表locations传入该方法.

我试过了

.getMap(locations.toArray())
Run Code Online (Sandbox Code Playgroud)

但getMap不接受,因为它不接受Objects [].

现在,如果我使用

.getMap(locations.get(0));
Run Code Online (Sandbox Code Playgroud)

它会完美地工作......但我需要以某种方式传递所有位置...我当然可以继续添加locations.get(1), locations.get(2)等等但是阵列的大小各不相同.我只是不习惯整个概念ArrayList

最简单的方法是什么?我觉得我现在不想直接思考.

java variadic-functions

205
推荐指数
3
解决办法
11万
查看次数