问题标签 [language-features]

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 投票
9 回答
65156 浏览

python - python内部类的目的是什么?

Python 的内部/嵌套类让我感到困惑。有没有他们不能完成的事情?如果有,那是什么东西?

0 投票
14 回答
33076 浏览

programming-languages - Scala 有什么了不起的?

除了类型系统之外是什么让 Scala 成为如此出色的语言?我读到的几乎所有关于该语言的内容都将“强类型”作为使用 Scala 的一个重要原因,但必须不止于此。还有哪些其他引人注目和/或很酷的语言特性使 Scala 成为真正有用的工具?

0 投票
2 回答
3193 浏览

c++ - C++ 'new' 运算符的问题?

我最近遇到了这种咆哮

文章中提到的几点我不是很明白:

  • 作者提到了deletevs的小烦恼delete[],但似乎认为它实际上是必要的(对于编译器),但从未提供过解决方案。我错过了什么?
  • 在“专用分配器”部分的功能f()中,似乎可以通过将分配替换为以下内容来解决问题:(省略对齐)

    /li>
  • 在“重载 ::operator new[] 的危险”中,作者试图做一个new(p) obj[10]. 为什么不这样做(远不那么模棱两可):

    /li>
  • '调试 C++ 中的内存分配'。不能在这里争论。

整篇文章似乎都围绕在自定义内存管理方案中具有重要 构造函数析构函数的类展开。虽然这可能很有用,而且我无法反驳,但它的共性非常有限。

基本上,我们有放置新的和按类分配器——这些方法不能解决哪些问题?

另外,如果我只是笨拙和疯狂,在理想的 C++ 中,什么会代替operator new?必要时发明语法——什么是理想的,只是为了帮助我更好地理解这些问题。

0 投票
4 回答
6127 浏览

c# - C# 嵌套空检查 if 语句

我有一个关于编程风格和 C# 语言设计的问题,我很想知道是否有更好的方法来做我正在做的事情。

如果您有一个复杂的数据对象,其属性可以为空,但您想检查或操作数据(如果存在),则不能编写这样的行

因为编译器实际上会调用两行代码来评估 if 语句。

相反,您必须(我相信)写:

还有比这更好的风格吗?我正在尝试考虑如何使用 null coalesce (??) 但如果您尝试在同一语句中使用 MyNestedObject 的任何内容,它仍然会抛出。

更多信息:

据我了解,在 L_01ba 处,如果调用返回 true、不为 null 或非 0(即,如果对象为 null,则不采用分支,然后控制流线性继续)。这当然会执行 L_01c2 ,它会抛出一个空引用异常,因为 Myclass.MyObject 是空的。

我是不是错过了什么。这是 .net 3.5 C# 编译器。

0 投票
7 回答
10874 浏览

c++ - 定义中的 const value 参数而不是声明中的参数真的是 C++ 吗?

这类似于(但不同于)这个问题

下面是一些简单的测试代码来说明我在 Sun CC 中发现的一些奇怪之处:

当它使用 g++ 编译时,它会编译、链接并执行您在运行时所期望的操作。您还可以添加 ++a; 在 testy::lame() 中,编译器会抱怨更改只读变量(应该如此)。

但是,当我使用 CC 编译时,出现以下链接器错误:

用 nm 和 C++filt 检查目标代码,我发现 g++ 版本创建了一个 testy::lame(int) 符号,而 CC 创建了 testy::lame(const int) ,因此出现链接器错误。

我在 Stroustrup 的书中查到了它,但找不到提到的这种技术(并不意味着它不存在!);那么这真的是一个编译器错误,还是只是一个在 Solaris 之外的其他地方都可以使用的 hack?

0 投票
2 回答
212 浏览

c++ - C++0x 的哪些特性将保持不变(如果有的话)?

C++0x 中是否有任何已知的特性?就像,也许,标准库中的线程?

0 投票
5 回答
2696 浏览

delphi - 为什么在 Delphi 中可以自我赋值?

GUI 应用程序中的这段代码编译并运行:

(用 Delphi 6 和 2009 测试)

  • 为什么自写而不是只读?
  • 这在哪些情况下有用?

编辑:

  • 这在德尔福棱镜中也可能吗?(我想是的,看这里

更新:使用自我分配的德尔福应用程序/库:

0 投票
16 回答
1659 浏览

language-agnostic - 你希望用你最喜欢的编程语言自动实现什么?

作为一名程序员,我经常查看我当前使用的语言的一些特性,并自言自语“这对程序员来说很难做到,并且可以由机器自动处理”。

这种特性的一个例子是内存管理,它在各种语言中已经自动化了一段时间。虽然在大多数情况下手动进行内存管理并不难,但是在不泄漏内存的情况下在整个应用程序中完美地进行管理是非常困难的。自动化再次使它变得容易,因此我们程序员可以专注于更关键的问题。

您认为编程语言是否应该自动化任何功能,因为奖励/难度比率太低(例如并发)?

这个问题旨在就编程的未来会是什么样子进行头脑风暴,以及语言可以为我们做些什么让我们专注于更重要的任务,所以即使你认为自动化不实用,也请发表你的愿望/可行的。好的答案将指出在许多语言中真正难以做到的事情,而不是单一语言的烦恼。

0 投票
1 回答
2089 浏览

css - 与常规 CSS 相比,Sass 提供了哪些优势?

我正在尝试决定表示层的技术。我听过 Sass 热情地谈论过,但在不知道为什么它比替代方案更好的情况下拒绝学习新东西——在这种情况下是纯 CSS。欢迎任何关于 Sass 的反馈。

编辑:这也是一个很好的讨论:

SASS:更好、更强大的 CSS

0 投票
2 回答
388 浏览

c++ - c++ 旧功能的更好替代方案?

c++ 已经走了很长一段路,它有很多功能可以以 n 种方式完成相同的任务。您认为应该避免哪些功能并列出更好的替代方案。

就像在指针的地方使用 SmartPointers