问题标签 [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 投票
1 回答
44 浏览

scala - Scala 2.8 - 命名参数的潜在问题

考虑以下代码:

现在说稍后我需要为该age字段定义一个访问器方法。

但是,尝试执行以下操作是不合法的,因为字段名称和方法名称在 Scala 中共享相同的命名空间:

所以我需要重命名构造函数参数age或我的字段age。无论哪种方式,我都会破坏客户端代码,不是吗?

有没有可能解决这个问题?或者这是命名参数的固有问题?

请对此有所了解。任何帮助将不胜感激。

谢谢。

0 投票
1 回答
83 浏览

language-agnostic - 我什么时候应该考虑对普通参数使用命名参数?

我将 RenameFolder 拆分为两部分,我注意到 Visual Studios 2010 支持命名参数!(下面的例子)。

我知道这在其他语言中已经存在多年了。我记得一位教授说他为什么喜欢命名参数,并且在他的所有代码中都使用它们。但我确信它不在他的所有代码中。我想知道。

我什么时候应该考虑使用命名参数与普通样式(func(a,b,c))来编写函数。某些案例区域(没有何时和何时不建议)

  • 在同一个类中调用公共方法
  • 在同一个类中调用私有方法
  • 调用外部 3rd 方库中的方法
  • 调用同一命名空间中另一个类中的方法
  • 在不同的命名空间或模块中调用另一个类中的方法
  • 从内部类调用方法并不意味着是一个库

    /li>
0 投票
3 回答
1574 浏览

cakephp - CakePHP - 你可以让表单作为命名参数提交参数吗?

所以 GET 表单使通常的 url 像

你可以制作一个表单创建像这样的网址吗

0 投票
3 回答
16566 浏览

.net - 命名参数和可选参数,以及 WCF

所以 .Net 4 添加了非常漂亮的命名参数和可选参数。我不需要制作尽可能多的 1 行重载方法。

这对 WCF 有效吗?

0 投票
2 回答
279 浏览

c#-4.0 - 带有命名参数的(不明确的)方法解析的编译器警告

关于以下代码是否应该产生编译器警告的一个问题(它不会)。它声明了两个具有相同名称/返回类型的方法,一个具有附加的命名/可选参数,具有默认值。

注意:从技术上讲,该解决方案并不模棱两可,因为规则明确规定将调用第一个方法。请参见此处,过载分辨率,第三个要点。毫无疑问,这种行为对我来说也是直观的。

我认为编译器警告在这里会很直观。虽然代码在技术上是干净的(它是否是一个声音设计是一个不同的问题:))。

0 投票
1 回答
182 浏览

c#-4.0 - C# 4.0 命名参数 - 在调用非框架方法时是否应该始终使用它们?

我真的这是一个非常主观的话题,但这是我目前的看法:

当调用不属于 .NET BCL 命名参数的方法时,应始终使用方法签名,尤其是在我自己的应用程序的开发周期中。

尽管它们可能看起来更冗长,但它们也更清晰。

以上是调用方法的合理方法还是我忽略了一些基本的东西?

0 投票
1 回答
1227 浏览

scala - Scala 2.8:匿名函数的类型推断作为默认参数

在 Scala 2.8.0 RC 2 这个定义:

给出错误信息:

未找到:值 t

缺少扩展函数的参数类型 ((x$1) => x$1{}.toString{}){}

只有这个有效:

为什么?

0 投票
2 回答
240 浏览

c# - 一些 C# 可选参数的可选规范

假设您有一个具有以下签名的方法:

调用此方法时,有没有办法为bar而不是指定值foo?它看起来像......

...这将转化为...

...在编译时。这可能吗?

0 投票
2 回答
420 浏览

programming-languages - 是否有一种编程语言在省略命名参数时执行柯里化?

许多函数式编程语言都支持柯里化参数。为了支持柯里化函数,函数的参数本质上是一个元组,其中最后一个参数可以省略,从而使新函数需要更小的元组。

我正在考虑设计一种始终使用记录(又名参数)作为函数参数的语言。

因此,我相信语言中的简单数学函数将是:

您可以将任何记录传递给这些函数,只要它们具有这两个命名参数(它们可以有更多“左”和“右”)。

如果它们只有一个命名参数,它会创建一个新函数:

我在上面借用了一些haskell 的符号

有没有人见过这样的语言?

0 投票
2 回答
187 浏览

.net - 复杂的 .NET 工厂设计

我打算问一个相当详尽的问题,这也是一种沉思,所以请耐心等待...

我正在尝试为模拟应用程序设计工厂实现。模拟将由不同种类的实体组成,即它在任何方面都不是同质模拟。结果,将有许多非常不同的具体实现,并且只有非常一般的属性将在顶层抽象。

我想做的是通过调用模型上的方法来创建新的模拟实体,该方法使用一系列表示实体参数的命名参数,并让模型推断入站描述的对象类型参数(来自参数的名称以及它们可能出现的顺序)并在适当的派生类上调用工厂方法。

例如,如果我向模型传递一对参数(Param1=5000,Param2="Bacon"),我希望它推断名称 Param1 和 Param2“属于”类“Blob1”并调用共享函数“ getBlob1" 带有命名参数 Param1:=5000, Param2:="Bacon" 而如果我通过模型 (Param1=5000, Param3=50) 它将为 Blob2 调用类似的工厂方法;因为 Param1 和 Param3 按此顺序“属于”Blob2。

我预计有几个问题需要解决:

  • 我是否可以使用字符串参数名称反映可用类型以及如果可能的话如何做到这一点
  • 是否有一种巧妙的方法可以从参数列表的组合属性中进行适当的构造函数推断,或者我是否将不得不“手动”做一些事情。
  • 如果可能的话,我希望模型类能够接受参数作为参数,而不是作为一些键和值的集合,这将要求模型在运行时公开大量参数化方法,而无需我显式编码它们 -大概对于相关命名空间中可用的每个工厂方法都有一个。

我真正要问的是你将如何实施这样一个系统,而不是它是否从根本上是可能的。我对 .NET 反射没有远见或经验,无法自己想办法。希望这将证明一个内容丰富的讨论。

更新

好吧,本质上,我在实现一个简单的案例,一个玩具模型方面已经有所突破。因此,核心逻辑是:

这只是在当前实例上选择一个方法并执行它。我想将其扩展到程序集中所有类型的子集。如果可能的话,我还想这样做,让这些类型通过检查它们自己的属性来决定它们在运行时的参数化初始化要求是什么,即每个标有“ParametrisedInitAttribute”的属性都对应于工厂方法中的一个命名参数。这将要求我让这些类型在运行时公开一个带有 N 个参数的方法。有没有办法构造一个具有任意签名的方法并在运行时将其添加到类实现中,或者类似的方式来做这种事情?