问题标签 [named-parameters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4886 浏览

c# - 在 C# 中将 lambda 函数作为命名参数传递

编译这个简单的程序:

那里没有什么奇怪的。如果我们在 lambda 函数体中出错:

编译器返回错误消息:

到现在为止还挺好。现在,让我们在调用中使用命名参数Foo

这一次,编译器消息有些混乱:

这是怎么回事?为什么它不报告实际错误?

请注意,如果我们使用匿名方法而不是 lambda,我们确实会收到正确的错误消息:

0 投票
1 回答
958 浏览

asp.net-mvc - ASP.NEt MVC 3.0 将 Int 数组作为参数从 Ajax ActionLink 传递到控制器

我可以将一个 Int 数组从 Ajax.ActionLink(来自我的视图)作为参数传递给 Controller

这是我的看法


在我的控制器中

0 投票
3 回答
396 浏览

c# - C# 中的命名参数是否有样式指南?

MSDN - 冒号后的空格。 这与 Objective-C 不同,我看不到人们在冒号后使用空格。我认为这可能是语法突出显示尚未赶上该功能的问题,但我没有使用良好 IDE 的经验。我在带有 Unity 的 Mac 上使用的 MonoDevelop 既不提供语法着色,也不提供命名参数的自动完成功能。 那里有很多;如果您知道我要求在内部或其他地方存在什么,请告诉我。我还没有找到它。

0 投票
2 回答
675 浏览

php - 使用 PHP 的 INTL MessageFormatter 的命名参数

我想在传递给 MessageFormater 的字符串中使用命名参数,就像这样

当我运行此代码时,我收到错误消息:

数字格式化失败:U_ILLEGAL_ARGUMENT_ERROR

然而

效果很好。

icu-project 网站报告称,自 ICU 3.8 起支持命名参数(见此处),我使用 4.2.1

独角兽在哪里?PHP 不支持 MessageFormatter 的命名参数?也许有替代方案?

0 投票
3 回答
1245 浏览

scala - Scala 命名参数和默认参数以及隐式参数

考虑以下:

最后一个表达式导致以下错误:

但是,如果您为隐式参数 a 提供默认值,则没有问题:

但最后一行打印

虽然我会预料到

所以隐含值's'没有被拾取。如果您不向 f 提供任何参数而只是调用

然后隐式值被拾取,你得到

有人可以阐明这里发生了什么吗?

0 投票
2 回答
25729 浏览

c# - C#:使用可选参数和命名参数重载构造函数?

这不是关于正确编码实践的问题,我只是在处理语义。假设我有以下构造函数...

是否可以这样使用命名参数......?

// 我只传递一个命名参数,依靠可选参数来处理其余的

还是不带参数调用构造函数 FooClass(string, int, bool)?如...

0 投票
2 回答
4510 浏览

asp.net-mvc - 使用 Razor 视图的路由值集合中的动态命名参数

我使用辅助方法在视图中创建部分:

现在假设我@Html.ActionLink在上面的帮助器中使用了这个自定义帮助器:

有没有办法在路由值集合中传递动态命名参数?在上面的例子中,我想要一个sectionName动态命名的参数,这样我就可以在 action 方法中获得正确的值。它会根据sectionName我当前作为参数传递给辅助方法的不同而有所不同......

现在我得到一个这样的链接:

它应该是:

City或者我作为参数传递的任何内容,而不是sectionName因为“City”是sectionName我传递给辅助方法的参数的值。

我可以做一个开关,sectionName但我只是想知道是否有一种更简洁的方法来实现这一点。

0 投票
4 回答
14169 浏览

ruby - Ruby 中没有命名参数?

这太简单了,我简直不敢相信它抓住了我。

我倾向于使用散列作为参数选项,只是因为它是牛群的做法——而且它很干净。我以为这是标准。今天,经过大约 3 个小时的 bug 搜寻,我发现我碰巧使用的这个 gem 有一个错误,假设命名参数将被尊重。他们不是。

所以,我的问题是:在 Ruby (1.9.3) 中是否正式不尊重命名参数,或者这是我缺少的东西的副作用?如果不是,为什么不呢?

0 投票
2 回答
4667 浏览

c# - 在 C# 中混合输出和命名参数:为什么输出参数也需要命名?

简短版本:参数后面的命名参数out会产生编译器错误,但我在语言规范中找不到对这种行为的任何支持。

长版

我正在使用Enum.TryParse<TEnum>三参数重载,但我更愿意命名ignoreCase参数以使我的代码更清晰,这样的调用:

使布尔值的含义不清楚(除非此方法已知1)。因此我想使用:

但是编译器将此报告为错误:

命名参数 'ignoreCase' 指定一个已经给出位置参数的参数

IDE 会突出显示该ignoreCase参数。针对 .NET 4 的 VS2010 和针对 4 或 4.5 的 VS11 Beta 都给出了相同的结果。在所有情况下,命名out参数都会消除错误。

我已经在框架和我的程序集中尝试了许多不同的方法(包括避免泛型)2:总是相同的结果:一个out参数后跟一个命名参数会产生错误。

我看不出这个错误的原因,并且C# 语言规范的§7.5.1参数列表:版本 4.0似乎没有提供任何原因说明out后面的命名参数应该给出错误。错误的文本似乎支持将其解释为错误:没有位置参数可以有效匹配ignoreCase.

我对规范的阅读是错误的吗?或者这是一个编译器错误?

C# 7.2 更新

当使用 C# 7.2 取消调用时,对所有命名参数的限制必须遵循位置参数。

请参阅https://docs.microsoft.com/en-gb/dotnet/csharp/whats-new/csharp-7-2#non-trailing-named-arguments


1因此,框架设计指南中的建议是首选enum参数。

2例如:给定:

out除非参数也被命名,否则此调用也会在命名参数上给出相同的错误:

0 投票
2 回答
243 浏览

ironpython - IronPython:从.net的字典中动态分配python命名参数

我想动态分配来自.net Dictionary 实例的参数值,如下所示:

我想找到一种以编程方式从字典中分配变量值的方法,如下所示:

我知道这可能不像我写的那样可能,但你明白了。

非常感谢你,

埃斯特班。