language-design 相关问题

与编程语言的任何方面的设计相关的问题的标签。

为什么Rust要求提前返回,而不是最后返回?

为什么末尾允许隐式返回,而提前返回却需要return关键字? fn 栏() -> u64 { 如果为真 { 1 } 否则{0} } 这在语义上是等价的,但引发了......

回答 1 投票 0

为什么 C# 中没有 ||= 或 &&= 运算符?

我们为所有逻辑运算符、移位运算符、加法运算符和所有乘法运算符提供等效的赋值运算符。 为什么逻辑运算符被遗漏了? 有没有好的

回答 3 投票 0

拆包/包装操作员

我正在寻找实现打包/拆包操作符的各种方法。举个例子: *[1,2,3] --> 1,2,3(一个数组标量值解压缩为三个值) *1,2,3 -->...

回答 1 投票 0

使用通用 SQL 方言捕获组

我想定义一个语法表达式: =expr + #native(...) expr 可以是我们语法中的任何有效表达式,目前这是有效的。然而,#native(...) 是一个有效的 SQL 语句...

回答 1 投票 0

为什么第一方、特定于语言、依赖管理的构建工具没有普及?

我只在 C#(从 2017 年开始使用 MSBuild,通常通过 dotnet CLI 调用)、Rust(Cargo,技术上是“构建系统”而不是“构建工具”)和 Go(从...开始使用 CLI)中看到过这种情况。

回答 2 投票 0

为什么 C++ 语言禁止使用某些可打印字符的 ALT 代码作为标识符?

考虑以下代码片段: 结构 vec2 { 诠释 x; 诠释y; }; constexpr vec2 向上{0,1}; constexpr vec2 向下{0,-1}; constexpr vec2 左{-1,0}; constexpr vec2 右{1,0}; 上面的代码...

回答 1 投票 0

为什么不能通过子类访问私有静态字段?

来自 MDN 文档: 私有静态字段有一个限制:只有定义了私有静态字段的类才能访问该字段。当您...

回答 1 投票 0

为什么私有静态字段不像私有实例字段那样被继承?

来自 MDN 文档: 私有静态字段有一个限制:只有定义了私有静态字段的类才能访问该字段。当您...

回答 1 投票 0

Any/Variant 类型的类型理论

假设我有一个类型系统,除了空值外,它还具有三种原始类型: 无效的 布尔值 数 细绳 此外,每种类型都有一个类型化数组,所以我们现在有:n...

回答 1 投票 0

为什么实例字段属于实例而不是它们的原型?

在ES6引入的JavaScript类语法中(类可以访问静态属性,实例可以访问实例属性): 静态字段属于类; 静态

回答 1 投票 0

以不同于实例方法的方式处理实例字段的基本原理是什么?

在ES6引入的JavaScript类语法中(类可以访问静态属性,实例可以访问实例属性): 静态字段属于类; 静态

回答 1 投票 0

如何在不使用静态上下文中的类名的情况下访问 java 中的 .class 对象

在 java 中,可以在不使用(换句话说键入)类名称的情况下访问类。一个例子 公共课示例{ /** * 非静态上下文,只能调用...

回答 3 投票 0

为什么 python dict.update() 不返回对象?

我有这个代码: award_dict = { “网址”:“http://facebook.com”, "imageurl": "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png", “

回答 11 投票 0

为什么我不能在 Python 中使用“+”运算符将元组添加到列表中?

Python 不支持向列表中添加元组: >>> [1,2,3] + (4,5,6) 追溯(最近一次通话): 文件“”,第 1 行,在 TypeError: 只能连接 lis...

回答 3 投票 0

关键字END是名词还是动词?

相当多的编程语言使用关键字END来标记结构化语句的结束或过程声明的结束等。这个词是作为名词还是作为动词来读的(在命令...

回答 0 投票 0

为什么 std::fetch_add 返回旧值?

是什么设计目的或技术限制使得std::fetch_add的返回值是改变前的值?

回答 1 投票 0

为什么我们需要 C++20 中的 concept 关键字?

概念很棒,不要误会我的意思,但是为什么我们需要另一个关键字呢? 考虑以下示例: #包括 模板 概念 UnsignedConst ...

回答 1 投票 0

""

. That's a shift-reduce conflict. Of course, it can easily be resolved by looking one more token into the future, but the need to see two tokens into the future is what makes the grammar LR(2). Fortunately, LR(k) grammars can always be reduced to LR(1) grammars. (This is not true of LL(k) grammars, by the way.) It just gets a bit messy because it is necessary to introduce a bit of redundancy. We do that by avoiding the need to reduce until we know that we have a parameter list, which means that we need to accept without committing to one or the other parse. That leads to the following, where an apparently redundant rule was added to and was modified to accept either 0 or at least two parameters: Now, I personally would stop there. There are lots of LR parser generators out there, and the above grammar is LALR(1) and still reasonably easy to read. But it is possible to convert it to an LL(1) grammar, with quite a bit of work. (I used a grammar transformation tool to do some of these transformations.)

回答 1 投票 0

为什么Ruby中Array不重写三等号方法?

我刚刚注意到Array没有覆盖三等号方法===,有时也叫case equal方法。 x = 2 case x when [1, 2, 3]then "match" else "no match" end # ...

回答 1 投票 6

为什么对JavaScript Date对象进行类似的数学运算会返回不同的类型?[重复]

为什么会发生这种情况? > new Date() - 50 1591281777205 > new Date() + 50 'Thu Jun 04 2020 10:43:01 GMT-0400 (Eastern Daylight Time)50' 从技术角度来看,我对此很感兴趣,但...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.