标签: parameter-passing

如何在函数中使用无穷大参数(如PHP的isset())

你知道PHP如何isset()接受多个(没有限制)参数?

就像我能做的那样:

isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11);
//etc etc
Run Code Online (Sandbox Code Playgroud)

我怎么能在自己的功能中做到这一点?如何通过无限参数传递?

他们是如何做到的呢?

php parameters param function parameter-passing

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

Java真的按值传递对象吗?

可能重复: Java是否通过引用传递?

public class myClass{
    public static void main(String[] args){
        myObject obj = new myObject("myName");
        changeName(obj);
        System.out.print(obj.getName()); // This prints "anotherName"
    }
    public static void changeName(myObject obj){
        obj.setName("anotherName");
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道Java通过值传递,但为什么它obj在前面的示例中通过引用传递并更改它?

java terminology parameter-passing pass-by-reference pass-by-value

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

PL/pgSQL函数中的可选参数

我正在尝试用可选参数编​​写PL/pgSQL函数.它基于过滤的记录集(如果指定)执行查询,否则对表中的整个数据集执行查询.

例如(PSEUDO CODE):

CREATE OR REPLACE FUNCTION foofunc(param1 integer, param2 date, param2 date, optional_list_of_ids=[]) RETURNS SETOF RECORD AS $$
    IF len(optional_list_of_ids) > 0 THEN
        RETURN QUERY (SELECT * from foobar where f1=param1 AND f2=param2 AND id in optional_list_of_ids);
    ELSE
        RETURN QUERY (SELECT * from foobar where f1=param1 AND f2=param2);
    ENDIF
$$ LANGUAGE SQL;
Run Code Online (Sandbox Code Playgroud)

实现此功能的正确方法是什么?

顺便说一句,我想知道如何在另一个外部函数中调用这样的函数.我就是这样做的 - 它是正确的,还是有更好的方法?

CREATE FUNCTION foofuncwrapper(param1 integer, param2 date, param2 date) RETURNS SETOF RECORD AS $$
BEGIN
   CREATE TABLE ids AS SELECT id from …
Run Code Online (Sandbox Code Playgroud)

postgresql parameters stored-procedures plpgsql parameter-passing

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

指针作为C中的函数参数

如果我有这个代码,例如:

int num = 5;
int *ptr = #
Run Code Online (Sandbox Code Playgroud)

以下两个功能有什么区别?

void func(int **foo);
void func(int *foo); 
Run Code Online (Sandbox Code Playgroud)

我在哪里调用函数:

func(&ptr); 
Run Code Online (Sandbox Code Playgroud)

我意识到前两者采用指针作为参数指针,而第二种只采用指针.

如果我传入func(&ptr),我实际上是在传入一个指针.指针指向另一个指针有什么区别?

我相信后者会给出一个不兼容的警告,但只要你知道你在做什么,似乎细节无关紧要.似乎可能为了可读性和理解,前者是更好的选择(2星指针),但从逻辑的角度来看,有什么区别?

c parameters pointers parameter-passing

27
推荐指数
3
解决办法
5万
查看次数

将参数传递给jq过滤器

这是我的config.json:

{
    "env": "dev",
    "dev": {
        "projects" : {
            "prj1": {
                "dependencies": {},
                "description": ""
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的bash命令:

PRJNAME='prj1'

echo $PRJNAME

jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json 
jq '.dev.projects.prj1' config.json 
Run Code Online (Sandbox Code Playgroud)

输出:

prj1
null
{
  "dependencies": {},
  "description": ""
}
Run Code Online (Sandbox Code Playgroud)

所以$ PRJNAME是prj1,但第一次调用只输出null.

有人能帮我吗?

bash json parameter-passing jq

27
推荐指数
4
解决办法
3万
查看次数

Ruby中的'通过引用传递参数'?

在Ruby中,是否可以通过引用传递带有值类型语义的参数(例如Fixnum)?我正在寻找类似于C#的' ref '关键字的东西.

例:

def func(x) 
    x += 1
end

a = 5
func(a)  #this should be something like func(ref a)
puts a   #should read '6'
Run Code Online (Sandbox Code Playgroud)

顺便说一句.我知道我可以使用:

a = func(a)
Run Code Online (Sandbox Code Playgroud)

ruby parameter-passing pass-by-reference

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

是否可以更改函数参数的值?

例如,我有一个带有两个参数的函数function (a,b).我想在函数中,取b的值,并用c替换它.我在想类似的东西$(b).replaceWith(c),但它没有成功.我知道我可以使用新值在函数内创建一个新变量,但是可以更改b本身的值吗?这样的事情是可能的.或者参数设置在石头上?

让我试着解释一下我想做什么.有三个函数,一个是总体函数,然后是两个函数,由toggle事件触发.我希望第二个函数做一些事情来获取一个值并将其传递给第三个函数.所以这里是代码

function(a,b){

    $('selector').toggle(

        //I want this to gather a value and store it in a variable
        function(){},

        //and I want this to accept the variable and value from the previous function
        function(){}
    )}
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是为总体函数添加一个参数c,然后用第一个函数修改它,并将新值传递给第二个函数.

javascript parameters jquery function parameter-passing

26
推荐指数
2
解决办法
5万
查看次数

PHP,将参数从命令行传递给PHP脚本

我想从PHP命令行界面传递参数,然后使用PHP脚本读取值,如下所示:

<?php
  $name1 = $argv[1];    
  echo $name1;
?>
Run Code Online (Sandbox Code Playgroud)

我从CLI传递变量,如下所示:

C:\xampp\php\php.exe name.php Robby
Run Code Online (Sandbox Code Playgroud)

上面的作品,我得到了罗比作为输出.

但我想做这样的事情:

C:\xampp\php\php.exe name.php -inputFirstName="Robby"
Run Code Online (Sandbox Code Playgroud)

这样用户就可以在正确的位置输入正确的参数.解析这些参数的适当方法是什么?

php parameter-passing command-line-interface

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

在Sublime Text 2中使用参数构建和运行

我在MacOS X上运行,我正在使用Sublime Text 2进行编码.

我找到了command+ B选项来构建和command+ shift+ B来构建和运行.

是否可以运行程序(或脚本)并传递参数.例:

myProg arg1 arg2
Run Code Online (Sandbox Code Playgroud)

注意:我使用多种语言(C++,Java,Python),所以我希望有一种方法可以为每个项目设置参数,而不是为所有构建设置参数.

编辑

我想设置程序调用的参数,有点像在eclipse中,你可以在运行程序时设置参数.

build parameter-passing sublimetext2

26
推荐指数
3
解决办法
2万
查看次数

Objective C - 按值传递并通过引用传递

首先,抱歉这个简单的问题.但我需要了解发生了什么.

我认为输出应该是upper case string.但它出来了UPPER CASE STRING.

- (void)test
{
     NSString *stringVar = @"UPPER CASE STRING";
     [self changeString:stringVar];
     NSLog(@"value after changed : %@", stringVar);
}

- (void)changeString:(NSString*)string
{
     string = [string lowercaseString];
}
Run Code Online (Sandbox Code Playgroud)

发生了什么以及如何解决它?

string objective-c parameter-passing ios

25
推荐指数
2
解决办法
3万
查看次数