标签: parameter-passing

函数参数中的静态关键字

我刚刚在一些嵌入式代码中找到了这个函数定义:

float round_float_to_4(static float inputval);
Run Code Online (Sandbox Code Playgroud)

我熟悉静态的其他用途(全局变量,函数和局部变量),但这是我第一次将其视为函数参数的说明符.我假设这迫使编译器使用固定内存位置进行inputval而不是堆栈?

c static function parameter-passing

16
推荐指数
2
解决办法
6950
查看次数

Ruby - 调用方法将数组的值作为每个参数传递

我目前仍然坚持这个问题.我已经在我创建的类中迷上了method_missing函数.当调用一个不存在的函数时,我想调用另一个我知道存在的函数,将args数组作为所有参数传递给第二个函数.有谁知道这样做的方法?例如,我想做这样的事情:

class Blah
    def valid_method(p1, p2, p3, opt=false)
        puts "p1: #{p1}, p2: #{p2}, p3: #{p3}, opt: #{opt.inspect}"
    end

    def method_missing(methodname, *args)
        if methodname.to_s =~ /_with_opt$/
            real_method = methodname.to_s.gsub(/_with_opt$/, '')
            send(real_method, args) # <-- this is the problem
        end
    end
end

b = Blah.new
b.valid_method(1,2,3)           # output: p1: 1, p2: 2, p3: 3, opt: false
b.valid_method_with_opt(2,3,4)  # output: p1: 2, p2: 3, p3: 4, opt: true
Run Code Online (Sandbox Code Playgroud)

(哦,顺便说一下,上面的例子对我不起作用)

编辑

根据提供的答案,这是可行的代码(上面的代码中有错误):

class Blah
    def valid_method(p1, p2, p3, opt=false)
        puts "p1: #{p1}, p2: #{p2}, …
Run Code Online (Sandbox Code Playgroud)

ruby arrays methods parameter-passing

16
推荐指数
1
解决办法
9111
查看次数

bash:传递带空格的路径作为参数?

我有一个bash脚本,可以从用户那里收到一组文件.这些文件有时位于名称中带有空格的目录下.不幸的是,与此问题不同,所有文件名都通过命令行界面传递.让我们假设路径在用户传入时正确引用,因此空格(保存为引用空格)是路径之间的分隔符.如何以保留引用空格的方式将这些参数转发到我的bash脚本中的子例程?

bash whitespace parameter-passing filepath delimiter

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

如何在C中解析整数命令行参数?

我希望用户传递两个参数或将其留空.例如:

./program 50 50
Run Code Online (Sandbox Code Playgroud)

要么

./program
Run Code Online (Sandbox Code Playgroud)

当我尝试使用时int main(int argc, char *argv[]),我所做的第一件事就是改变char *argv[],int *argv[]但它没有用.我想要的是用户只需输入0到100之间的两个整数.所以如果它不是两个整数那么它应该给出一个错误.

我有点想用类型给出错误(就像我以前在C#上编程的那样),但无论我输入什么,argv [1]都会一直是'char'类型.

所以我所做的就是

for (int i = 0; i <= 100; i++) {
    //printf("%d", i);
    if (argv[1] == i) {
        argcheck++;
        printf("1st one %d\n", i);
    }
    else if (argv[2] == i) {
        argcheck++;
        printf("2nd one %d\n", i);
    }
Run Code Online (Sandbox Code Playgroud)

这不起作用.此外,它在编译时发出警告,但如果我改为argv使用atoi(argv[1]),那么它会产生分段错误(核心转储)错误.

我需要一种简单的方法来解决这个问题.

编辑:

所以我解决了atoi(),它给出分段错误的原因是因为我在没有参数的情况下尝试使用null值.所以我通过添加额外的cond来修复它.但现在问题是,如果价值是让我们说的话

./program asd asd
Run Code Online (Sandbox Code Playgroud)

然后输出atoi(argv[1])将是0.有没有办法改变这个值?

c parameter-passing command-line-arguments

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

"太多参数"警告的解决方案

在我的一些方法中,存在太多参数,并且很难维护和读取源代码.有时候我担心的问题是" 他们是否以适当的顺序传递了适当的价值? "

我使用Checkstyle作为我的Eclipse插件,它为我提供了超过7个参数的警告.

我不确定它可能只是一个编码标准,我不关心它.但是当通过视图,服务dao传递许多参数时,我注意到它很难阅读并且以后很难修改.

所以,我试图通过这些参数...

  1. 一些对象豆类.但这给了我另一个问题,因为我的参数不能得到任何保证(不确定它们是否存在).

  2. HashMap类型参数.但这可能会迫使我检查一些验证并尝试匹配方法调用方面的密钥.

以上两种方法也可能会丢失编译时错误检查.有没有减少参数计数的建议?

java parameters optimization parameter-passing

16
推荐指数
3
解决办法
7579
查看次数

在不使用GET参数的情况下在@ViewScoped bean之间传递对象

我有一个browse.xhtml浏览列表的地方cars,我想在details.xhtml按下"查看更多"按钮时查看汽车的详细信息.他们的支持豆分别@ViewScoped被称为BrowseBeanDetailsBean.

现在,我不希望用户/客户端在URL中看到汽车ID,因此我想避免使用GET参数,如此此处所示.

有没有办法实现这个目标?我正在使用Mojarra 2.2.8和PrimeFaces 5以及OmniFaces 1.8.1.

jsf parameter-passing omnifaces view-scope jsf-2.2

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

如何将JavaScript变量作为参数传递给JSF动作方法?

我正在准备JavaScript中的一些变量(在我的具体情况下,我想获得GPS位置):

function getVars() {
    // ...
    var x = locationInfo.lng; 
    var y = locationInfo.lat;
}
Run Code Online (Sandbox Code Playgroud)

我想通过以下命令按钮将它们发送到我的托管bean:

<h:commandButton value="submit" onclick="getVars()" action="#{bean.submit(x,y)}" />
Run Code Online (Sandbox Code Playgroud)
public void submit(int x, int y) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何将JavaScript xy变量从JavaScript 发送到JSF托管bean操作方法?

javascript jsf parameter-passing managed-bean

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

如何将promise的返回值赋给变量?

编辑为复制的评论 我引用:[ 如何从异步调用返回响应?

承诺是未来价值观的容器.当promise接收到值(已解决)或取消(拒绝)时,它会通知所有想要访问此值的"侦听器".

这个问题是关于如何返回promise中包含的值.答案对我很有用,因为它澄清了不可能返回值,而是访问 promise函数中的值.

关于这个主题的其他有用资料来源:

原始问题下方:


您能帮助理解如何从这两个例子中的承诺和差异中获得价值吗?

//I have a simple ajax call like:

var fetch = function(start_node, end_node) {
var apiEndpoint = 'localhost/nodes/';
var loadurl = apiEndpoint+start_node+'/'+end_node;
return $.ajax({
    url: loadurl,
    type: 'GET',
    dataType: 'json',
    jsonpCallback: 'json'

  });

};
// Then I processed results in something like:
    var getResult = function(data) {
      // do smtg with data
      var result = {'myobject' : result_from_data}
      return result …
Run Code Online (Sandbox Code Playgroud)

javascript variables jquery parameter-passing promise

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

"new Foo()"和"&Foo()"之间的区别作为参数

关于关键字new&特定上下文之间的区别,我有一些问题.

让我们说这是我的代码:

struct Base {};
struct Foo : Base {};
struct Storage
{
    void save(Base * object) {}
    Base * content;
};

int main()
{
    Storage s1, s2;
    s1.save(new Foo());
    s2.save(&Foo());
}
Run Code Online (Sandbox Code Playgroud)

执行main之后,s1将持有指向类型对象的指针Foo.然而,s2将保持指向类型对象的指针Base.在save方法完成执行之前,它s2.content只会指向一个类型的对象Foo.

如果我错了,请纠正我:

据我所知,new Foo()创建一个指向新类型对象的指针Foo.&Foo()另一方面,首先创建一个类型的新对象,Foo然后指向它.

究竟是什么区别new Foo()&Foo()呢?显然,它们都会为您提供指向现有类型对象的指针Foo.

为什么new Foo()在执行save方法后通过persist 创建对象,而通过创建的对象&Foo()却没有?

可能是&Foo()创建一个临时对象,在执行save之后它将不复存在?如果是的话,我怎样才能延长通过&Foo()它创建的对象的生命(至少)直到毁灭 …

c++ reference parameter-passing new-operator

16
推荐指数
1
解决办法
890
查看次数

从AJAX或JQuery运行Python脚本

我们需要从Javascript运行python脚本.我们必须将输入String作为参数传递给python脚本,并将python输出显示在我们的网页上.

这是Python代码,这个代码在我的linux框中运行时工作正常:./sample.py 12345,给出输出12345./sample.py显示no argument found

#!/usr/bin/env python

import os
import sys

if len(sys.argv) > 1:
  output = sys.argv[1]
else:
  output = "no argument found"

print "Hello World!!!"
print output
Run Code Online (Sandbox Code Playgroud)

如何从上面的python中的ajax调用中访问'param',并将该值用作参数?

使用Javascript:

$.ajax({
        type: 'POST',
        url: "scripts/sample.py",
        data: {param: xyz}, //passing some input here
        dataType: "text",
        success: function(response){
           output = response;
           alert(output);
        }
}).done(function(data){
    console.log(data);
    alert(data);
});
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

编辑

正如所建议的那样,我试图让我的代码使用CGI.

#!/Python34/python

# Import modules for CGI handling 
import cgi, cgitb

# Create instance of …
Run Code Online (Sandbox Code Playgroud)

javascript python ajax jquery parameter-passing

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