Описание тега variadic-functions
Функция является переменной, если она может принимать переменное количество аргументов; то есть его арность не фиксирована. Аббревиатура "varargs" обычно используется для обозначения этих типов функций.
12
ответов
Java два varargs в одном методе
Есть ли способ в Java, чтобы создать метод, который ожидает двух разных varargs? Я знаю, с тем же типом объекта это невозможно, потому что компилятор не знает, где начинать или заканчивать. Но почему это также невозможно с разными типами объектов? Н…
25 июл '13 в 20:23
1
ответ
Быстрая переменная param сравнить с массивом
func gradientOfView(withColours: UIColor..., locations: [NSNumber]) func gradientOfView(withColours: [UIColor], locations: [NSNumber]) Что лучше? Когда использовать переменную param, заменить массив как param?
24 май '17 в 09:29
3
ответа
va_arg 64-битная проблема
У меня такой C-код. В 64-битной системе Linux результат: 4294967264 вместо -32. И clang, и gcc выдают двоичный файл с одинаковыми неверными результатами. Проблема в линии: * v = va_arg (args, long); #include <stdio.h> #include <string.h>…
18 мар '13 в 15:43
1
ответ
Можно ли опубликовать список в качестве параметра для функции с неограниченными параметрами (...) в Java?
Допустим, у меня есть сторонняя библиотека, которая предоставляет функцию, принимающую неограниченные параметры: void foo(Bar ... bar); Я не могу изменить эту библиотеку или создать новые функции для этой библиотеки, я могу использовать только то, ч…
14 июл '15 в 03:18
2
ответа
Получение параметров String... и передача его значений другому методу, который получает параметры String...
private String createURI (String URL , String... parameters) { if (parameters != null && parameters.length > 0) { return String.format(URL, "5435534", "John" , parameters[0].toString()); } return String.format(URL, "5435534", "John"); } Я…
13 июн '17 в 03:57
1
ответ
Printf-подобная функция
Я пытаюсь написать функцию с произвольным числом аргументов. Эти аргументы могут быть Int или String. И у меня есть проблема с Ints. По какой-то причине (которую я не понимаю) значение 1 становится источником неоднозначности. Как бороться с этой оши…
04 сен '15 в 13:47
5
ответов
Нажатие и выталкивание первого элемента std::tuple
Я пишу функцию в C++ с переменным количеством аргументов (и разных типов) таким образом template<typename ...Ts> void myFunction(Ts ...args) { //create std::tuple to access and manipulate single elements of the pack auto myTuple = std::make_tu…
23 авг '16 в 12:38
2
ответа
Как преобразовать аргументы переменной функции в коллекцию, такую как Set или List
В Java мы можем использовать функцию variadic следующим образом: public Set packStrings(String...strings){ for (String str : strings){ //Do something on the str } //How to convert strings into a Set? } У меня вопрос, что это за тип "строки"? это стр…
28 окт '10 в 07:05
2
ответа
Разделить запятыми параметры в LaTeX
Я пытаюсь создать команду, которая похожа на LaTeX \cite{}, который принимает список параметров через запятую, как это \cite{Wall91, Schwartz93} Я хотел бы передать каждый элемент в списке, разделенном запятыми, который параметр представляет другой …
08 мар '10 в 15:25
0
ответов
std::forward vs static_cast для переменных аргументов
Я не до конца понимаю, что делает "&&" после параметра variadic. Следующие функции в целом одинаковы, или в некоторых случаях есть разница? template <typename... Args> void function1(Args&&... args) { some_other_function(std::forward&l…
15 янв '14 в 05:55
2
ответа
Передача переменных аргументов в пользовательскую функцию EL возможна?
Я хотел поддержки вызова пользовательских функций с параметрами в JSF-1.2 и наткнулся на этот документ http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html. Но возможно ли использовать переменные аргументы для этой функции? Я пытался с помощью ма…
19 мар '13 в 11:06
0
ответов
Ключевое слово varargs с недопустимыми именами переменных
Все мы знаем функцию varargs Python: def f(*args, **kwargs): print(args, kwargs) f(1, 2, foo='bar') # output: (1, 2) {'foo': 'bar'} kwargs= {'a': None} f(**kwargs) # output: () {'a': None} Но недавно я обнаружил, что в качестве ключей можно использо…
07 сен '16 в 06:46
0
ответов
Как правильно издеваться над Вараргсом с Мокито
У меня есть этот метод, "экземпляр" @Mock instance.lookup( SomeClass.class.getField("field").getAnnotation(MyAnnotation.class), Annotation... annotations ) Подпись этого метода именно такова: Object lookup(MyAnnotation resource, Annotation... annota…
26 фев '15 в 13:12
2
ответа
va_list неправильное поведение в Linux
У меня есть код, который преобразует переменные параметры в va_list, затем передает список функции, которая затем вызывает vsnprintf, Это прекрасно работает в Windows и OS X, но в Linux это дает сбой с странными результатами. В следующем примере код…
30 мар '12 в 05:37
0
ответов
LLVM переменные параметры
Когда я компилирую AC-файл в LLVM-IR, который использует функцию printf, я получаю строку объявления функции, которая выглядит следующим образом: declare i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #2 Теперь мне интересно, как LLVM п…
25 окт '17 в 12:11
2
ответа
Каков наилучший способ отправить метод динамического числа переменных?
У меня есть Java-программа с методом, который будет последовательно получать различное количество int ценности. Каков наилучший способ отправить его ints?
22 апр '16 в 05:14
2
ответа
Ошибка сегментации строки с помощью va_arg
Я делаю функцию, похожую на printf, она должна принимать строку и аргументы, такие как: form("Integer %d, String %s", 54, "STRING"); и сделать строку "Integer 54, String STRING", я использую stdarg.h библиотека, потому что моя функция должна иметь п…
25 фев '16 в 07:41
2
ответа
va_list и va_arg
Я использую va_list, как это: void foo(const char* firstArg, ...) { va_list args; va_start (args, firstArg); for (const char* arg = firstArg; arg != NULL; arg = va_arg(arg, const char*)) { // do something with arg } va_end(args); } foo ("123", "234"…
30 мар '12 в 02:34
4
ответа
В Java, как сделать метод способным принимать переменные параметры или набор параметров без дублирования кода реализации?
Я ищу способ, чтобы я мог использовать ту же часть кода, чтобы иметь дело с передачей параметров через Set или переменные параметры. например public void func(String...strs){ for (String str : strs){ //Deal with str } } Согласно спецификации, функци…
18 ноя '10 в 02:01
6
ответов
Есть ли стандартный способ определения количества va_args?
Я экспериментирую с переменными аргументами в C++, используя va_args. Идея полезна, и это действительно то, что я часто использовал в C# с помощью функции params. Одна вещь, которая расстраивает меня, это следующая выдержка относительно va_args выше…
15 окт '12 в 17:58