标签: argument-passing

将类作为参数传递给java中的方法

我正在编写一个方法,我想将一个类传递给一个方法,其中一部分代码包括检查对象是否属于某种类型.这就是我想要的(但显然不起作用):

private static class MyClass1 { /***/ }
private static class MyClass2 { /***/ }

private void someFunc() {
    /* some code */
    methodName(MyClass1);
    methodName(MyClass2);
}


private void methodName(Class myClass) {
    Object obj;
    /* Complicated code to find obj in datastructure */
    if (obj instanceof myClass) {
        /* Do stuff */
    }
}
Run Code Online (Sandbox Code Playgroud)

有关如何做到这一点的任何提示?谢谢!

java instanceof argument-passing

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

批处理脚本子例程:传递参数

我的理解是,为了从作为参数传递到子例程的文件中获取日期,必须将该参数重新设置为子例程中的变量.它是否正确?这对我来说没有,所以我想知道我是不是完全明白发生了什么.除了日期提取之外,我几乎可以在任何其他子例程代码中使用传入的参数.

set setupEXE=setup.exe

CALL :SUB_CheckCorrectDate %setupEXE%
GOTO EOF
::----------------------------------

:SUB_CheckCorrectDate
set filename=%1%

:: SUCCESSFUL
for %%x in (%filename%) do set FileDate=%%~tx
@For /F "tokens=1-3 delims=-/ " %%A in ('@echo %FileDate%') do @( 
Set file_Month=%%A
Set file_Day=%%B
Set file_Year=%%C
)

:: GET ERROR    
for %%x in (%1%) do set FileDate=%%~tx
@For /F "tokens=1-3 delims=-/ " %%A in ('@echo %FileDate%') do @( 
Set file_Month=%%A
Set file_Day=%%B
Set file_Year=%%C
)    

GOTO:EOF

:: ------------------
:EOF
Run Code Online (Sandbox Code Playgroud)

arguments batch-file argument-passing subroutine

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

检查inside方法是否传递了一些可选参数

如何检查是否将可选参数传递给方法?

public void ExampleMethod(int required, string optionalstr = "default string",
    int optionalint = 10)
{

    if (optionalint was passed)
       return;
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用Nullable<T>.HasValue(MSDN定义,MSDN示例):

int default_optionalint = 0;

public void ExampleMethod(int required, int? optionalint,
                            string optionalstr = "default string")
{
    int _optionalint = optionalint ?? default_optionalint;
}
Run Code Online (Sandbox Code Playgroud)

c# nullable optional-parameters argument-passing

10
推荐指数
3
解决办法
9758
查看次数

懒惰评价:为什么我不能使用情节(...,xlim = c(0,1),ylim = xlim)?

其中一个R最大的特点就是懒惰的评价.这导致了经常遇到的样式,即可以使用参数作为另一个参数的值.例如,在Hadley关于Advanced R的伟大着作中,您会看到以下示例:

g <- function(a = 1, b = a * 2) {
  c(a, b)
}
g()
#> [1] 1 2
g(10)
#> [1] 10 20
Run Code Online (Sandbox Code Playgroud)

现在,我想用xlim和做同样的情节ylim,但是,它不起作用:

> plot(1, 1, ylim = c(0,1), xlim = ylim)
Error in plot.default(1, 1, ylim = c(0, 1), xlim = ylim) : 
  object 'ylim' not found
> plot(1, 1, xlim = c(0,1), ylim = xlim)
Error in plot.default(1, 1, xlim = c(0, 1), ylim …
Run Code Online (Sandbox Code Playgroud)

r lazy-evaluation argument-passing

10
推荐指数
2
解决办法
835
查看次数

使用空格拆分/ proc/cmdline参数

解析/ proc/cmdline的大多数脚本将其分解为单词,然后使用case语句过滤掉参数,例如:

CMDLINE="quiet union=aufs wlan=FOO"
for x in $CMDLINE
do
»···case $x in
»···»···wlan=*)
»···»···echo "${x//wlan=}"
»···»···;;
»···esac
done
Run Code Online (Sandbox Code Playgroud)

问题是WLAN ESSID有空格.用户希望设置wlan='FOO BAR'(就像一个shell变量),然后'FOO用上面的代码得到意想不到的结果,因为for循环在空格上分割.

是否有一种更好的方法来解析/proc/cmdlineshell脚本几乎没有评估它?

还是有一些引用技巧?我以为我可能会要求用户实体引用空格并解码如下:/bin/busybox httpd -d "FOO%20BAR".或者这是一个糟糕的解决方案?

shell parsing split cpu-word argument-passing

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

Javascript查找传递给函数的参数

我需要找到从函数传递给函数的参数.

让我们假设我有一个叫做的函数foo:

function foo() {
  var a = 3;
  var b = "hello";
  var c = [0,4];
  bar(a - b / c);
  bar(c * a + b);
}

function bar(arg) { alert(arg) }
Run Code Online (Sandbox Code Playgroud)

当然,现在,它bar总会提醒NaN.

在函数内部bar,我想以最初传递的形式获取参数.此外,我希望能够访问的值a,b以及cbar功能.换句话说,我想要这样的东西:

bar(a - b / c);    

function bar() {
 //some magic code here
 alert(originalArg); //will alert "a - b / c"
 alert(vars.a + " " + vars.b + " " …
Run Code Online (Sandbox Code Playgroud)

javascript argument-passing

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

我应该将jQuery或DOM对象作为参数传递吗?(表现问题)

哪个是更好的性能.

foo(this);

function foo(element) {

    $(element).index();

}
Run Code Online (Sandbox Code Playgroud)

或者我应该这样做

foo($(this));

function foo($element) {

    $element.index();

}
Run Code Online (Sandbox Code Playgroud)

显然考虑到我将在函数内部使用该参数几次.

谢谢!康纳

javascript performance jquery function argument-passing

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

Ruby:自动将实例变量设置为方法参数?

是否有任何计划实现类似于在方法参数列表中指定实例变量名称的CoffeeScript功能的ruby行为?喜欢

class User
  def initialize(@name, age)
    # @name is set implicitly, but @age isn't.
    # the local variable "age" will be set, just like it currently works.
  end
end
Run Code Online (Sandbox Code Playgroud)

我知道这个问题:在Ruby中我可以在initialize方法中以某种方式自动填充实例变量吗?,但所有的解决方案(包括我自己的)似乎都不符合ruby简单哲学.

并且,这种行为会有任何缺点吗?

UPDATE

其中一个原因是红宝石社区的DRY(不要重复自己)哲学.我经常发现自己需要重复参数变量的名称,因为我希望将它分配给同名的实例变量.

def initialize(name)
  # not DRY
  @name = name
end
Run Code Online (Sandbox Code Playgroud)

我能想到的一个缺点是,如果一个方法没有正文,它可能看起来就像什么都没做.如果您正在快速扫描,这可能看起来像一个无操作.但我认为,只要有时间,我们就可以适应.

另一个缺点:如果您在正文中设置其他实例变量,并且您尝试通过将所有分配放在开头可读,则可能需要更多的认知"权力"才能看到分配也发生在参数列表中.但我不认为这比看到一个常量或方法调用并且不得不跳到它的定义更难.

# notice: instance var assignments are happening in 2 places! 
def initialize(@name)
  @errors = []
end
Run Code Online (Sandbox Code Playgroud)

ruby methods instance-variables argument-passing

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

使用Poco C++库,如何将数据传递给线程?

所以我的问题实际上有几个部分:

使用Poco线程库:

  1. 将数据传递给线程的所有可能方法是什么(在线程调用和已经运行的线程中).
  2. 您最喜欢哪种方法?为什么?您能否提供有关使用这些方法的经验的任何其他信息?
  3. Applied Informatics(Poco的作者)推荐哪些方法?Applied Informatics是否提供了其他文档,概述了将参数传递给线程?

我已经看过这里了:

提前致谢...

c++ multithreading argument-passing poco-libraries

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

省略传递空的带引号的参数

我的 bash 脚本中有一些变量可能包含文件名或未设置。它们的内容应作为附加参数传递给程序。但是当变量未设置时,这会留下一个空参数。

$ afile=/dev/null
$ anotherfile=/dev/null
$ unset empty
$ cat "$afile" "$empty" "$anotherfile"
cat: : No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果没有引号,它就可以正常工作,因为附加参数被简单地省略了。但由于变量可能包含空格,因此必须在此处用引号引起来。

我知道我可以简单地将整条线包装在对空性的测试中。

if [ -z "$empty" ]; then
  cat "$afile" "$anotherfile"
else
  cat "$afile" "$empty" "$anotherfile"
fi
Run Code Online (Sandbox Code Playgroud)

但对每个变量进行一次测试会产生一棵巨大而复杂的决策树。

有没有更紧凑的解决方案?bash 可以省略带引号的空变量吗?

bash arguments argument-passing variable-expansion

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