标签: argument-passing

将空的IEnumerable参数传递给方法

我有这个方法(简化):

void DoSomething(IEnumerable<int> numbers);
Run Code Online (Sandbox Code Playgroud)

我这样调用它:

DoSomething(condition==true?results:new List<int>());
Run Code Online (Sandbox Code Playgroud)

该变量results由LINQ选择条件(IEnumerable)形成.

我想知道这List<int>()是通过空集合的最佳方式(最快吗?),还是new int[0]更好?或者,其他东西会更快Collection,等等?在我的例子null中不行.

c# generics ienumerable argument-passing

9
推荐指数
1
解决办法
3536
查看次数

如何声明两个函数将彼此的签名作为参数?

是否有可能模仿这样的事情:

typedef boost::function<void(A)> B;
typedef boost::function<void(B)> A;
Run Code Online (Sandbox Code Playgroud)

主要目标是能够编写这样的代码(在伪c ++中):

void a_(B b) {
  // ...
  b(a_);
}
void b_(A a) {
  // ...
  f(boost::bind(a, b_));
}

f(boost::bind(a_, b_));
Run Code Online (Sandbox Code Playgroud)

c++ boost argument-passing function-signature

9
推荐指数
1
解决办法
241
查看次数

命令行在引号内传递引号

我一直在寻找解决方案,但找不到一个.不确定是否可能.

我可以传入命令行执行,该命令行执行传递一个以输入文件作为参数的bat文件吗?

所以从命令行看,它看起来像这样:

C:\run.exe "C:\space folder\run.bat "C:\space folder\input.txt""
Run Code Online (Sandbox Code Playgroud)

问题在于具有空格的文件夹,因此需要引号.

command-line parameter-passing filepath argument-passing double-quotes

9
推荐指数
1
解决办法
2万
查看次数

Python如果N个变量中有多个是真的

我需要检查是否定义了a,b,c和d中的多个:

def myfunction(input, a=False, b=False, c=False, d=False):
    if <more than one True> in a, b, c, d:
    print("Please specify only one of 'a', 'b', 'c', 'd'.)
Run Code Online (Sandbox Code Playgroud)

我目前正在嵌套if语句,但这看起来很可怕.你能提出更好的建议吗?

python if-statement function argument-passing

9
推荐指数
2
解决办法
3226
查看次数

当我从内联汇编中调用它们时,如何将参数传递给C++函数

所以,我希望能够从c ++ dll调用函数.出于某些原因,我想从我的C++代码中的__asm块中调用它们.我的问题是:我知道在调用函数之前,我必须按照函数调用约定指定的顺序在堆栈上推送它的参数.但是,我可以简单地做这样的事情:

int a=5;   
double b = 5.0;  
__asm{  
       push b 
       push a  
       call functionAddress  
}
Run Code Online (Sandbox Code Playgroud)

令我担心的是,我似乎记得汇编中的标准字大小是2字节,而C++中int的大小通常是4bytes,而double是8字节.所以,在上面的例子中,我真的推送每个变量的全部值,或只是前几个字节?如果上面的代码不正确,那么正确的方法是什么?另外,如果我们调用的函数返回一个double,那么这个值存储在哪里?我假设它不能在寄存器中,因为它只能存储32位(4字节).对这个混乱的任何帮助将非常感激:)

x86 callstack inline-assembly argument-passing

8
推荐指数
1
解决办法
3813
查看次数

C++托管数组大小

我有这个

function(array<Object^>^ a)
Run Code Online (Sandbox Code Playgroud)

我怎么知道这个数组的长度?像C++一样,大小必须附带功能吗?

谢谢,

arrays c++-cli argument-passing

8
推荐指数
2
解决办法
1万
查看次数

在函数调用中有条件地包含参数

我想调用一个函数,但根据情况我可能会用额外的参数调用它.这是一个简单的例子:

FUN <- function(arg1 = "default1", arg2 = "default2", arg3 = "default3")
          print(list(arg1, arg2, arg3))


x1 <- "hi"
x2 <- TRUE
x3 <- 1:3

use.arg3 <- FALSE   # This will decide if `x3` is used or not.

if (use.arg3) {
   FUN(arg1 = x1, arg2 = x2, arg3 = x3)
} else {
   FUN(arg1 = x1, arg2 = x2)
}
Run Code Online (Sandbox Code Playgroud)

虽然代码清晰,但感觉有点多余.还想象一下,如果我有类似use.arg1use.arg2变量,我会有一个丑陋的可能性组合(8)...

我在下面发布了一个解决方案,但我发现它有点复杂,以至于我总是很难记住确切的语法.

如果您有更好的想法,感谢您的分享.

r function argument-passing

8
推荐指数
2
解决办法
1627
查看次数

用R中的列表替换参数

有时会有一个具有任意数量参数的函数.例如,bootstrapPage包的功能有光泽.如果我有一个data.frame并且我想为一行创建一个小部件,那么我还没有找到一种根据data.frame的行号传递参数数量的好方法.到目前为止,我生成脚本并使用诀窍eval(parse(text="..."))

事实上,传递给R中的函数的参数结构(键和值)类似于a list,所以我想知道是否有办法将参数作为R中的列表传递.

更具体地讲,如果我有一个函数f和一个列表argv,是有办法传递的对象argv,以f根据名字的匹配argv和自变量的名称f,并在位置argv和自变量的位置f

例如,让我们

f <- function(a, b) a + b
argv <- list(a=1, b=2)
Run Code Online (Sandbox Code Playgroud)

我应该如何传递argvf这相当于f(a=argv$a, b=argv$b)

或者如果我们有:

f <- function(a, b, ...) { # some codes }
argv <- list(a = 1, b = 2, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

我应该如何传递argvf这相当于f(a=argv$a, b=argv$b, argv[[3]], argv[[4]], argv[[5]])

谢谢!

r argument-passing

8
推荐指数
1
解决办法
234
查看次数

解析/传递命令行参数到bash脚本 - "$ @"和"$*"之间有什么区别?

我正在使用bash脚本.jar从任何位置调用和执行文件,而不必经常输入其显式路径.

.jar要求在执行中指定的其他变量参数,因为这些可以是任何东西,他们不能被硬编码到脚本.

共有3个变量,第一个指定要执行的2个操作中的1个.jar,第二个指定要执行此操作的目标文件,第三个指定操作要创建的文件的名称.

我目前使用的脚本是:

#!/bin/bash  
java -jar "C:\path\to\file.jar" "$1" "$2" "$3"
Run Code Online (Sandbox Code Playgroud)

我不是很了解的bash脚本,但在寻找另一种答案我的困境(现已修复),我碰到"$@""$*"引用命令行参数的时候.做更多搜索带我到这个网站:如何维基:如何在bash脚本中读取命令行参数,但我无法找到任何有关这些参数的可靠信息,而无需通过大量的高级bash编程我的头.

所以现在我已经永远漫步,我的问题相对简单:

我可以"$1" "$2" "$3""$@"或替换"$*",如果是,哪个更好用?

那些命令之间的区别是什么?

bash arguments argument-passing command-line-arguments command-line-parsing

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

计算百分比Javascript

我有一个关于javascript逻辑的问题,我用它来获取文本字段中两个输入的百分比.这是我的代码:

    var pPos = $('#pointspossible').val();
    var pEarned = $('#pointsgiven').val();

    var perc = ((pEarned/pPos) * 100).toFixed(3);
    $('#pointsperc').val(perc);
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果我的输入是600和200,我的结果假设是33.333但我得到3.333.如果我硬编码我的值,这很好.如果有人可以帮助我,我很感激.提前致谢.

html javascript argument-passing percentage

8
推荐指数
5
解决办法
7万
查看次数