问题标签 [first-class]

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 回答
222 浏览

c# - 在 C# 中返回一个函数

我有这个片段

重复了北,南和东。

如何声明一个函数,让我以编程方式生成类似 ir 的方法?

例如,我希望能够打电话

而不是定义方法,然后

0 投票
3 回答
7425 浏览

c# - Java 和 C# 中的原始类型是否不同?

我正在手动将代码从 Java 转换为 C#,并与(我称之为)原始类型(参见,例如Do autoboxing 和 unboxing 在 Java 和 C# 中表现不同)作斗争。从答案中我了解到double(C#) 和Double(C#) 是等效的,并且double(C#) 也可以在容器中使用,例如作为字典中的键。但是,double(Java)不能在像 HashMap 这样的容器中使用,这就是它被自动装箱到Double(Java)的原因。

  1. double(C#) 是原语还是对象?
  2. 如果它是原始的,是什么使它的行为与double(Java)不同?

double(C#) 不能设置为 null,除非它是 made nullable

  1. (C#)是否double?等同于Double(Java)?它们都被称为对象吗?

(在这个讨论中使用术语“第一类对象”有用吗?)

0 投票
7 回答
22930 浏览

c# - Java 和 C# 中的一等对象是什么?

当我多年前开始 OO 编程时,我得到的印象是变量(如果这是正确的词)要么是“原始”(int、double 等),要么是一流的对象(String、JPane 等)。最近对 Java 和 C# 中原语的回答强化了这一点(@Daniel Pryden:Java 和 C# 中的原语类型不同吗?)。但是不知道 C# ValueTypes 是基元、对象还是其他诸如二等对象之类的野兽。我看到 SO 只有一个first-class标签的用途,所以它可能不再是一个有用的术语。

我没有发现Wikipedia 文章有用(“这篇文章需要有关该主题的专家的关注。”)。我会感谢分类法和术语的当前用法,主要与 Java 和 C# 相关(尽管其他语言可能会有所启发)。

澄清:我想了解“头等舱”一词及其使用范围。

0 投票
3 回答
443 浏览

function - Scala 中的 First-class 函数是否会成为在 JVM 中分配大型 PermGen 空间的问题?

关于Scala中的一等函数,在Scala的Programming一书中有写:

函数文字被编译成一个类,在运行时实例化时是一个函数值。

当一个程序中会使用很多一流的函数时,这会影响JVM的PermGen空间吗?因为编译器不是为简单函数生成类,而是为函数值的每个变体生成类(例如,在部分应用函数的不同定义的情况下)。

0 投票
2 回答
1085 浏览

python - Python - 基类中的类方法可通过子类访问,无需传入类

我正在尝试在基类中定义一些方法,然后可以将其用作子类的类/静态方法,如下所示:

我如何定义它以便它可以在中使用find而不必重新定义它或传递到方法中?我也不想打电话。我正在使用 Python 2.6。CommonFooFooFooCommonFoo.find(Foo, 3)

编辑: derp,看起来我有另一个我没有注意到的find声明,它导致了. 我会删除这个问题,但 Nix 提到了代码异味,所以现在我就如何避免以无异味的方式在我的所有模型类中进行定义征求建议。CommonTypeErrorfind

0 投票
3 回答
222 浏览

language-agnostic - 类型作为一等对象有什么好处?

这里有没有人有很好的例子来说明类型作为一等对象?

我想这有助于直接实现一些数学概念,这确实是我正在寻找的例子。

UPD为了澄清这个问题,如果可以使函数接受类型并返回类型,或者将类型存储在变量中,可以做什么?

我正在研究Aldor,但由于许可证问题,它有点死了。至少在上面的意义上,有些类型被称为第一类对象。

0 投票
1 回答
1695 浏览

java - java中的第一类对象

可能重复:
Java 和 C# 中的一等对象是什么?

现在我听说 java 中的 First class 对象是不使用像 String 这样的 new 关键字创建的对象

现在我们声明数组也没有 new 关键字?他们也是头等舱所以我得到了这篇文章http://c2.com/cgi/wiki?JavaArraysShouldBeFirstClassObjects

现在我发现的另一篇有趣的文章是 http://c2.com/cgi/wiki?JavaExceptionsAreFirstClassObjects 那么异常是头等对象吗?

所以任何人都可以用简单的方式定义一个第一类对象并告诉我java中的所有第一类对象


编辑:

在标记为可能重复之前,请仔细阅读问题让我简而言之我的问题是

1.数组和异常是第一类对象吗?2.你能定义头等舱对象(面试类型)吗?

0 投票
3 回答
276 浏览

scala - scala案例模式是一流的吗?

是否可以将案例模式作为参数传递给其他函数?像这样的东西:

0 投票
2 回答
388 浏览

macros - Erlang 中的一流模式?

Erlang 中是否支持一流的模式?

如果答案是否定的(支持),您知道实现此目的的任何其他方法吗?例如,使用宏?

0 投票
0 回答
278 浏览

c++ - 抽象工厂和类作为第一类对象

一个理论问题。我正在阅读 Gof 的设计模式,抽象工厂部分。这本书提到了像原型一样实现这种模式的可能性,或者,如果语言允许的话,使用存储类而不是对象的原型。

我明白了这一点;例如在Java 或Smalltalk 中,类也是对象(在Java 中它们实际上是类Class 的实例)。因此,我们可以将它们存储在一个类中,并在需要时调用这些类的实例的创建。

在 C++ 中,类不是第一类对象。因此,我们不应该能够遵循这种方法。但是,我们不能在具体工厂中声明嵌套类,并使用调用它们的构造函数(并返回它们的实例)的方法吗?最终结果将与 Java 或 Smalltalk 等其他语言相同。我对吗?

感谢您的关注。