问题标签 [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.
java - 我在哪里可以获得 Java 8 语言规范?
Oracle 站点上提供了 Java 7 规范,但我在任何地方都找不到 Java 8 规范,尽管 Internet 上可以下载 Java 8 的 beta 版本。
你有什么想法:它已经写好了,在哪里可以下载?如果规范不可用,也许另一个文档可以充当(或接近)规范?
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# 设计团队要复制这种行为?
xml - XML 规范是否说明了元素的顺序?
我听说过几次 XML 规范表明 XML 是无序的(例如,如果您期望有序,那么它就不是真正的 XML)。据我所知,XML 规范没有说明元素的顺序。既不是它明确无序,也不是暗示没有顺序。
我已经知道了
- 顺序对于解析 xml 的程序通常很重要
- 您可以声明一个强制执行顺序的模式
但我想知道的是:XML 规范(任何版本)是否说明了元素的顺序?
c# - CS0060的由来:类类型的直接基类必须至少和类类型本身一样可访问
我刚刚在.net中遇到了这个关于继承的基本规则:
CS0060:类类型的直接基类必须至少与类类型本身一样可访问
我很好奇为什么要制定这条规则。
有谁知道为什么首选这种继承?有没有不同的语言。
谢谢
c# - 如果存在从 S 到 T 的恒等转换,那么 S 和 T 一定是同一类型吗?
在 6.1.6 中。在 C# 语言规范中,有:
隐式引用转换是:
(...)
从任何引用类型到引用类型 T,如果它具有到引用类型 T0 的隐式标识或引用转换,并且 T0 具有到 T 的标识转换。
他们为什么不说,更简单地说:
从任何引用类型到引用类型 T,如果它具有到 T 的隐式标识或引用转换。
有没有实际的区别?
编辑:我意识到我打错了规范,错误可能对问题很重要(规范说“隐式引用转换是”而不是“存在隐式转换”)
scala - Scala 2.8 规范§6.26.5 Eta 扩展中的“最大子表达式”是什么?
在Scala 2.8 语言规范§6.26.5 Eta Expansion 中,它声明我们需要一个最大子表达式,但是,找不到它的定义。有人可以澄清一下吗?
java - 为什么Java中的加号运算符总是产生整数?
我有这样的代码
编译失败的原因是什么?x
+x
总是产生Integer
或更大 Number
,但为什么呢?
directed-acyclic-graphs - 是否有从 DAG 中提取元素的语言(或语言规范)
我有一个问题,我有大量的 DAG,我必须访问每个 DAG,并提取许多不同的项目集。
这听起来可能有点抽象,所以让我举个例子。Xpath 或 JSONPath 是指定如何从 xml 文档或 json 文档中提取元素的语言。它们是表示此类文档中特定元素的有效方式。因此,如果我有大量的 xml 文档,并且我想让消费者从每个文档中指定他们想要的内容,我会让他们为我提供一个 xpath 表达式,我会使用它来为每个人提供他们正在寻找的元素对于每个文档。
在这种情况下,我有许多 DAG,我的消费者每个人都想从每个 DAG 中提取几个项目(而不仅仅是一个项目)。我正在尝试设计一个规范,使人们可以从每个这样的 DAG 中表示他们想要的东西(具有指定特定元素的能力,具有不同复杂性的谓词)。我想知道是否已经存在对我所描述的目的有意义的语言规范。
如果这对于 DAG 不存在,但对于树存在,那也将非常有用。
function - python函数中的参数是否作为元组传递?
让我们f
成为一个有 2 个参数的函数。我真的不明白为什么语法:
真的有效(注意结尾的逗号)?看起来参数被视为一个元组,但在这种情况下,如果g
是一个有 1 个参数的函数,为什么g(1)
工作(而不是g(1,)
我们必须以相同的方式编写 (1,) 来获取只有一个元素的元组)?
我认为这是 Python 的规范问题,但我不知道在哪里搜索。