标签: parameters

参数或参数?

我常常发现自己对如何使用术语"参数"和"参数"感到困惑.它们似乎在编程世界中可以互换使用.

使用它们的正确惯例是什么?

language-agnostic parameters arguments terminology function

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

反思:如何使用参数调用方法

我试图通过参数反射调用方法,我得到:

对象与目标类型不匹配

如果我调用没有参数的方法,它可以正常工作.如果我调用该方法Test("TestNoParameters"),则基于以下代码,它可以正常工作.但是,如果我打电话Test("Run"),我会得到一个例外.我的代码有问题吗?

我最初的目的是传递一系列对象,例如public void Run(object[] options)但这不起作用,我尝试了一些更简单的例如字符串而没有成功.

// Assembly1.dll
namespace TestAssembly
{
    public class Main
    {
        public void Run(string parameters)
        { 
            // Do something... 
        }
        public void TestNoParameters()
        {
            // Do something... 
        }
    }
}

// Executing Assembly.exe
public class TestReflection
{
    public void Test(string methodName)
    {
        Assembly assembly = Assembly.LoadFile("...Assembly1.dll");
        Type type = assembly.GetType("TestAssembly.Main");

        if (type != null)
        {
            MethodInfo methodInfo = type.GetMethod(methodName);

            if (methodInfo != null)
            {
                object result = null;
                ParameterInfo[] …
Run Code Online (Sandbox Code Playgroud)

c# reflection parameters methods invoke

187
推荐指数
7
解决办法
35万
查看次数

在Swift中如何在GCD主线程上调用带参数的方法?

在我的应用程序中,我有一个函数,它生成NSRURLSession并使用发送NSURLRequest

sesh.dataTaskWithRequest(req, completionHandler: {(data, response, error)
Run Code Online (Sandbox Code Playgroud)

在这个任务的完成块中,我需要做一些计算,将UIImage添加到调用viewcontroller.我有一个叫做的功能

func displayQRCode(receiveAddr, withAmountInBTC:amountBTC)
Run Code Online (Sandbox Code Playgroud)

这是UIImage添加计算.如果我尝试在完成块内运行视图添加代码,Xcode会抛出一个错误,说我在后台进程中无法使用布局引擎.所以我在SO上发现了一些试图在主线程上排队方法的代码:

let time = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_MSEC)))
                    dispatch_after(time, dispatch_get_main_queue(), {
                        let returned = UIApplication.sharedApplication().sendAction("displayQRCode:", to: self.delegate, from: self, forEvent: nil)
                        })
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将参数"receiveAddr"和"amountBTC"添加到此函数调用中.我该怎么做,或者有人可以建议一种方法调用添加到应用程序主队列的最佳方法吗?

parameters grand-central-dispatch swift

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

传递参数JavaFX FXML

如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信?

例如:用户从a中选择一个客户,TableView并打开一个新窗口,显示客户的信息.

Stage newStage = new Stage();
try 
{
    AnchorPane page = (AnchorPane) FXMLLoader.load(HectorGestion.class.getResource(fxmlResource));
    Scene scene = new Scene(page);
    newStage.setScene(scene);
    newStage.setTitle(windowTitle);
    newStage.setResizable(isResizable);
    if(showRightAway) 
    {
        newStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

newStage将是新窗口.问题是,我找不到告诉控制器在哪里查找客户信息的方法(通过传递id作为参数).

有任何想法吗?

parameters dependency-injection javafx parameter-passing fxml

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

如果wget中存在文件,请跳过下载?

这是运行wget的最简单示例:

wget http://www.example.com/images/misc/pic.png
Run Code Online (Sandbox Code Playgroud)

但如果pic.png已经可用,如何使wget跳过下载?

parameters wget download command-line-interface

178
推荐指数
4
解决办法
12万
查看次数

在编写自己的函数时如何使用R的省略号功能?

R语言有一个很好的功能,用于定义可以采用可变数量参数的函数.例如,该函数data.frame接受任意数量的参数,并且每个参数都成为结果数据表中列的数据.用法示例:

> data.frame(letters=c("a", "b", "c"), numbers=c(1,2,3), notes=c("do", "re", "mi"))
  letters numbers notes
1       a       1    do
2       b       2    re
3       c       3    mi
Run Code Online (Sandbox Code Playgroud)

函数的签名包括省略号,如下所示:

function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, 
    stringsAsFactors = default.stringsAsFactors()) 
{
    [FUNCTION DEFINITION HERE]
}
Run Code Online (Sandbox Code Playgroud)

我想编写一个类似的函数,获取多个值并将它们合并为一个返回值(以及进行一些其他处理).为了做到这一点,我需要弄清楚如何...从函数中的函数参数"解包" .我不知道该怎么做.功能定义中的相关行data.frameobject <- as.list(substitute(list(...)))[-1L],我无法理解.

那么如何将省略号从函数的签名转换为例如列表呢?

更具体地说,我如何写get_list_from_ellipsis下面的代码?

my_ellipsis_function(...) {
    input_list <- get_list_from_ellipsis(...)
    output_list <- lapply(X=input_list, FUN=do_something_interesting)
    return(output_list)
}

my_ellipsis_function(a=1:10,b=11:20,c=21:30)
Run Code Online (Sandbox Code Playgroud)

编辑

似乎有两种可能的方法来做到这一点.他们是as.list(substitute(list(...)))[-1L]list(...).但是,这两者并没有完全相同.(有关差异,请参阅答案中的示例.)任何人都可以告诉我它们之间的实际区别是什么,我应该使用哪一个?

parameters r function ellipsis variadic

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

使用POST方法在Swift中进行HTTP请求

我正在尝试在Swift中运行HTTP请求,将POST 2参数发送到URL.

例:

链接: www.thisismylink.com/postName.php

PARAMS:

id = 13
name = Jack
Run Code Online (Sandbox Code Playgroud)

最简单的方法是什么?

我甚至不想阅读回复.我只是想发送它来通过PHP文件对我的数据库进行更改.

parameters post http-post httprequest swift

174
推荐指数
6
解决办法
22万
查看次数

如何在Objective-C中传递多个参数?

我已经阅读了几篇关于Objective-C方法语法的文章,但我想我不了解一个方法的多个名称.

我正在尝试创建一个名为getBusStopswith NSStringNSTimeIntervalparameters以及返回类型的方法NSMutableArray.这是我构建方法的方法,但它在运行时显然会出错:

- (NSMutableArray *)getBusStops:(NSString *)busStop
                                (NSTimeInterval *)timeInterval;
Run Code Online (Sandbox Code Playgroud)

我看到了一个方法的另一个例子:

-(NSInteger)pickerView:(UIPickerView *)pickerView
            numberOfRowsInComponent:(NSInteger)component
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这个方法有每个参数的方法名称.我应该做同样的事情:

- (NSMutableArray *)getBusStops:(NSString *)busStop
                        forTime:(NSTimeInterval *)timeInterval
Run Code Online (Sandbox Code Playgroud)

parameters methods syntax objective-c

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

以编程方式执行Segue并将参数传递到目标视图

在我的应用程序中,我有一个按编程方式执行segue的按钮:

- (void)myButtonMethod
{
    //execute segue programmatically
    [self performSegueWithIdentifier: @"MySegue" sender: self];
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以引用目标视图并传递一些参数.

我知道在prepareForSegue方法中,我可以用:来引用它myDestinationViewController *vc = [segue destinationViewController];,但我不知道如何以编程方式执行segue.

你有什么想法?

谢谢,亚萨


更新:

对不起这个问题我很抱歉!我只是发现,即使以编程prepareForSegue方式调用segue,也会调用该方法,因此可以以相同的常规方式传递参数.

parameters view storyboard ios segue

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

URL矩阵参数与请求参数

我想知道是否在我的URL中使用矩阵或查询参数.我发现对该主题的旧讨论并不令人满意.

例子

乍一看,矩阵参数似乎只有优势:

  • 更具可读性
  • 不需要在XML文档中编码和解码"&"
  • 带"?"的网址 在很多情况下都没有缓存; 具有矩阵参数的URL被缓存
  • 矩阵参数可以出现在路径中的任何位置,并且不限于其末尾
  • 矩阵参数可以有多个值: paramA=val1,val2

但也有缺点:

  • 只有少数像JAX-RS这样的框架支持矩阵参数
  • 当浏览器通过GET提交表单时,params成为查询参数.因此它最终会出现两种相同任务的参数.为了不混淆REST服务的用户并限制服务开发人员的工作量,在这个领域中使用始终查询参数会更容易.

由于服务的开发人员可以选择支持矩阵参数的框架,因此唯一的缺点是浏览器默认创建查询参数.

还有其他缺点吗?你会怎么做?

parameters rest url http jax-rs

170
推荐指数
3
解决办法
6万
查看次数