问题标签 [language-specifications]

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 投票
5 回答
7491 浏览

java - 我在哪里可以获得 Java 8 语言规范?

Oracle 站点上提供了 Java 7 规范,但我在任何地方都找不到 Java 8 规范,尽管 Internet 上可以下载 Java 8 的 beta 版本。

你有什么想法:它已经写好了,在哪里可以下载?如果规范不可用,也许另一个文档可以充当(或接近)规范?

0 投票
2 回答
1717 浏览

c# - 为什么 C# 在 while 循环中也不允许空条件?

编辑:我改变了我的大部分问题,因为它太长了,虽然我的问题是对事实的要求,但它被认为是基于意见的。话虽如此,请阅读评论,我试图解释为什么关闭这个问题是错误的恕我直言。

另外:我想为我最初的问题道歉,我不是以英语为母语的人,我不知道 [blindly] 这个词有如此负面的语气。我实际上在其他问题中使用了这个词。


背景

考虑以下一段 C# 代码:

在其他方法中,这被认为是进行无限循环的良好做法。但是当我们用 a 尝试类似的方法时,while loop它永远不会编译:

起初我认为这是我的编译器中的某种错误,但后来我阅读了C# language specification. 我发现这是设计。为什么?因为 C# 是基于 C 的,而 C 的行为方式是这样的。

所以现在的问题是,为什么 C 会有这样的行为?其他人已经在 StackOverflow 上问过这个问题。答案非常不令人满意,归结为:

它的行为是这样的,因为它在 C 语言规范中是这样描述的。

这个答案让我想起了小时候和父母的许多讨论:“为什么我必须打扫房间?” - “因为我们这么说。” . 进一步的答案推测(即没有添加任何来源或论据)while()“hacky”并且“使用for(;;)更有意义”


我的研究

编辑:删除,因为它被认为很长。这基本上是为了弄清楚为什么 C 有这种结构。


我的问题:

经过我所有的研究,我得出结论,while loop如果可以的话, ' 无法接受空表达式是不合逻辑的the for loop

但如果这是真的,那么 C# 语言设计团队为什么要复制这种行为呢?

你:“C# 是基于 C 的,你为什么要重新发明轮子?”

没错,但为什么要做出同样不合逻辑的决定呢?如果你的祖父会跳桥,那你也会跳桥,就因为你是以他为基础的吗?并且基于旧语言创建新语言不是避免/修复旧语言不合逻辑陷阱的理想情况吗?

所以重复我的问题:

  • 为什么 C# 设计团队要复制这种行为?
0 投票
3 回答
140 浏览

xml - XML 规范是否说明了元素的顺序?

我听说过几次 XML 规范表明 XML 是无序的(例如,如果您期望有序,那么它就不是真正的 XML)。据我所知,XML 规范没有说明元素的顺序。既不是它明确无序,也不是暗示没有顺序。

我已经知道了

但我想知道的是:XML 规范(任何版本)是否说明了元素的顺序?

0 投票
5 回答
1029 浏览

c# - CS0060的由来:类类型的直接基类必须至少和类类型本身一样可访问

我刚刚在.net中遇到了这个关于继承的基本规则:
CS0060:类类型的直接基类必须至少与类类型本身一样可访问

我很好奇为什么要制定这条规则。

有谁知道为什么首选这种继承?有没有不同的语言。


谢谢

0 投票
1 回答
411 浏览

c# - 如果存在从 S 到 T 的恒等转换,那么 S 和 T 一定是同一类型吗?

在 6.1.6 中。在 C# 语言规范中,有:

隐式引用转换是:

(...)
从任何引用类型到引用类型 T,如果它具有到引用类型 T0 的隐式标识或引用转换,并且 T0 具有到 T 的标识转换。

他们为什么不说,更简单地说:

从任何引用类型到引用类型 T,如果它具有到 T 的隐式标识或引用转换。

有没有实际的区别?

编辑:我意识到我打错了规范,错误可能对问题很重要(规范说“隐式引用转换是”而不是“存在隐式转换”)

0 投票
1 回答
116 浏览

scala - Scala 2.8 规范§6.26.5 Eta 扩展中的“最大子表达式”是什么?

Scala 2.8 语言规范§6.26.5 Eta Expansion 中,它声明我们需要一个最大子表达式,但是,找不到它的定义。有人可以澄清一下吗?

0 投票
1 回答
550 浏览

java - 为什么Java中的加号运算符总是产生整数?

我有这样的代码

编译失败的原因是什么?x+x总是产生Integer更大 Number,但为什么呢?

0 投票
3 回答
1186 浏览

java - 如何从原始类文件中找出依赖类?

当我查看二进制类文件时,我是否可以轻松找出需要加载哪些其他类才能使用该类?

作为一种“目录”,我只能看到带有类条目的常量池表。第一个和第二个条目有特定的含义,直接在我找到的 JVM Spec和其他地方进行了解释。但是该表中的其他条目是否是该类文件使用的其他类的列表?这么说 - 文件的 - 部分的 JVM 变体?import*.java

所以归结为:

  • 常量池表中的所有类条目是否都引用了文件中某处使用的类?
  • 或者是否有其他机制可以让 Class 条目进入常量池
  • 假设我不想在第一次使用类时实现某种“延迟类加载”,那么我是否通过使用常量池表的类条目来加载正确的已用类列表?
0 投票
0 回答
223 浏览

directed-acyclic-graphs - 是否有从 DAG 中提取元素的语言(或语言规范)

我有一个问题,我有大量的 DAG,我必须访问每个 DAG,并提取许多不同的项目集。

这听起来可能有点抽象,所以让我举个例子。Xpath 或 JSONPath 是指定如何从 xml 文档或 json 文档中提取元素的语言。它们是表示此类文档中特定元素的有效方式。因此,如果我有大量的 xml 文档,并且我想让消费者从每个文档中指定他们想要的内容,我会让他们为我提供一个 xpath 表达式,我会使用它来为每个人提供他们正在寻找的元素对于每个文档。

在这种情况下,我有许多 DAG,我的消费者每个人都想从每个 DAG 中提取几个项目(而不仅仅是一个项目)。我正在尝试设计一个规范,使人们可以从每个这样的 DAG 中表示他们想要的东西(具有指定特定元素的能力,具有不同复杂性的谓词)。我想知道是否已经存在对我所描述的目的有意义的语言规范。

如果这对于 DAG 不存在,但对于树存在,那也将非常有用。

0 投票
0 回答
60 浏览

function - python函数中的参数是否作为元组传递?

让我们f成为一个有 2 个参数的函数。我真的不明白为什么语法:

真的有效(注意结尾的逗号)?看起来参数被视为一个元组,但在这种情况下,如果g是一个有 1 个参数的函数,为什么g(1)工作(而不是g(1,)我们必须以相同的方式编写 (1,) 来获取只有一个元素的元组)?

我认为这是 Python 的规范问题,但我不知道在哪里搜索。