问题标签 [programming-languages]

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 投票
6 回答
646 浏览

language-agnostic - 还有哪些其他支持“部分专业化”的语言?

部分模板特化是 C++ 中泛型编程最重要的概念之一。例如:实现一个通用的交换函数:

将其专门用于支持 O(1) 交换的向量:

因此,当您在通用函数中调用 swap(x, y) 时,您始终可以获得最佳性能;

非常感谢,如果您可以在替代语言中发布等效的(或语言的部分专业化的规范示例,如果该语言不支持交换概念)。

编辑:所以看起来很多回答/评论的人真的不知道部分专业化是什么,并且通用交换示例似乎妨碍了某些人的理解。一个更一般的例子是:

部分专业化将是:

一个完整的专业化将是:

为什么这很重要?因为您可以在通用函数中调用 foo(anything) :

并在编译时获得最合适的实现。这是 C++ 以最小的性能损失实现抽象的一种方式。

希望它有助于澄清“部分专业化”的概念。在某种程度上,这就是 C++ 在不需要显式模式匹配语法(比如 Ocaml/F# 中的 match 关键字)的情况下进行类型模式匹配的方式,这有时会妨碍泛型编程。

0 投票
2 回答
441 浏览

programming-languages - 发明新语言,语法检查?

我一直在考虑一种新的编程语言。在尝试实现它之前,我想检查代码的语法,看看是否有很多歧义。(我觉得它可能对一个类做 var++++ 很有趣)

0 投票
1 回答
117 浏览

programming-languages - 适用于范围分析器的良好 API

我正在开发一些代码生成工具,很多复杂性来自于范围分析。我经常发现自己想知道诸如

  1. 函数或块的自由变量是什么?
  2. 这个符号在哪里声明?
  3. 这个声明掩盖了什么?
  4. 这种符号的使用是否可能在初始化之前发生?
  5. 这个变量有可能逃脱吗?

我认为是时候重新考虑我的范围界定问题了。

我可以完成所有这些分析,但我正在尝试找出一种构建 API 的方法,以便它易于使用,并且理想情况下,可以懒惰地完成足够多的这项工作。

人们熟悉哪些类似的工具,他们在 API 中做对与错的地方是什么?

0 投票
4 回答
4377 浏览

java - Java 如何选择调用哪个重载函数?

这是一个纯粹的理论问题。

给定三个简单的类:

还有一个旨在对这些类进行操作的函数:

似乎以下代码:

可能会合法地导致打印 BASE CALLED 或 SUB CALLED,因为 SubSub 可以同时转换为这两者。事实上,删除函数的 Sub 版本会导致打印 BASE CALLED。实际发生的是打印了“SUB CALLED”。这似乎意味着调用哪个函数不取决于定义函数的顺序,因为首先调用了基本版本。

Java 是否只查看函数的所有不同版本并选择需要最小遍历继承堆栈的版本?这是标准化的吗?它是否写在任何文档中?

0 投票
6 回答
4342 浏览

c++ - C++ 如何选择调用哪个重载函数?

假设我有三个课程:

我的意思是说我有两个类,然后是第三个类,它扩展了两者(多重继承)。

现在说我在另一个类中定义了一个函数:

我用两者的实例调用这个函数:

这会导致编译时错误,说明函数调用不明确。

除了这种情况,C++ 编译器在哪些情况下判断调用不明确并抛出错误(如果有)?编译器如何确定这些情况是什么?

0 投票
5 回答
4870 浏览

c# - 为什么 C# 中不包含 Java“抛出”子句(在方法声明中)?

为什么 C# 中不包含 Java“抛出”子句(在方法声明中)?

0 投票
8 回答
726 浏览

programming-languages - 是否有任何编程语言的函数末尾没有可变参数?

Python、C++、Scheme 和其他都允许您定义在参数列表末尾采用可变数量参数的函数......

...可以如下调用:

等等......是否有任何语言允许您在其他地方使用参数列表执行可变参数函数?像这样的东西:

所有这些都有效:

另外,参数列表中任何地方的可选参数呢?

0 投票
4 回答
11348 浏览

apache-flex - 为什么 Flex 的 ArrayCollection 的 Contain 方法看内存引用?

在 Flex 中使用.contains()on anArrayCollection时,它总是会查看内存引用。它似乎没有查看.equals()方法或.toString()方法或任何可覆盖的东西。相反,我需要遍历ArrayCollection每次并检查每个单独的项目,直到找到我正在寻找的东西。

有谁知道为什么 Flex/ActionScript 是这样制作的?为什么不提供一种让人们以contains()他们想要的方式使用该方法的方法呢?

0 投票
5 回答
12281 浏览

image-processing - 图像处理语言/环境

我有兴趣研究一些图像处理。我想matlab是最好的方法,但现在我无法访问matlab。我尝试了 octave,但由于某种原因,它甚至无法加载 png、bmp 或 1 种特定格式以外的任何内容。R 似乎也不是这里的关键。

这里选择的语言是什么?珀尔?

也有人能指出我在图像处理方面可能错过的任何其他好的教程吗?

0 投票
28 回答
3108 浏览

c++ - 无意中使用 = 而不是 ==

看起来

代替

是万恶之源。

为什么不是所有的编译器都将其标记为错误而不是可配置的警告?

我有兴趣找出构造if (x=y)有用的情况。