问题标签 [generic-programming]

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 回答
126 浏览

javascript - 将系统值传递给 javascript 的最佳方式

将不应呈现给用户的对象和类别 ID 或其他系统变量从服务器传递到浏览器的最有效方法是什么?

假设我有一个项目列表,我可以通过 javascript 对每个项目做一些事情,例如显示工具提示 html 或通过 ajax 添加到收藏夹,或显示在地图上。最好将工具提示 html、数据库 ID 或地理位置保存在哪里?

我能想到的一些选择是:

  • <script></script>每个项目的标签内都有一些字典,
  • 微格式,
  • 内联xml,
  • rel属性,
  • 具有特定信息的 css 类名称,例如class="lat-12345 uid-45678"
  • 一个<script></script>带有模板中系统值的html ids映射字典的字典,
  • 从数据库生成的 javascript 并通过包含<script src="..."></script>模板中系统值的 html ids 映射字典的字典,
  • 当我需要更多信息而不仅仅是 id 时,所有情况下的 ajax 请求,
  • 带有 html 标签内参数的事件处理程序,例如onmouseover="tooltip(this, 123, 'Hello world!')".

PS 我更喜欢不显眼的解决方案,加载/执行时间也很重要。

0 投票
6 回答
7433 浏览

programming-languages - 通用编程与元编程

究竟有什么区别?似乎这些术语可以在某种程度上互换使用,但是阅读 Objective-c 的维基百科条目时,我遇到了:

除了 C 的过程式编程风格之外,C++ 还直接支持某些形式的面向对象编程、泛型编程和元编程。

参考 C++。那么显然他们是不同的?

0 投票
3 回答
1761 浏览

c++ - 如何克隆多继承对象?

我定义了一个 Cloneable 接口:

我还有一些其他接口类(内容与问题无关):

我创建了一个继承自上述类的叶对象:

我收到错误:

如果我将类型更改为Cloneable *,我会收到以下错误消息:

我的问题(所有相关):

  1. 叶类如何解决Cloneable 接口的需求?
  2. 是否有更好的解决方案来实现克隆合约,保证所有对象都实现克隆?

我将这种范式用作通用编程(记录、字段和数据库)的一部分。

编译器:MS Visual Studio 2008;平台:Windows XP 和 Vista

0 投票
2 回答
558 浏览

java - Java 中的代表,如 .NET 中的代表

我需要一些关于 Java 方法的建议,因为代表与 .NET 有点不同。我想创建一些具有相同名称和相同方法名称的接口,但唯一不同的是参数的数量。.NET 中的操作之类的东西

一些代码示例。

现在起作用的是像这样实现的抽象类。

然后在某些课程中,我们可以做这样的事情。

这项工作但不是很好的解决方案恕我直言,我需要的是可以分配给一个的各种接口之类的东西。

一些想法?

编辑:

目标是什么?

很简单有可能改变定义

进入

并在调用中

无需更改类导入等。

0 投票
3 回答
812 浏览

c++ - 用于控制算法的函子的编译时容器?

假设我想要一些简单的东西,如下所示:

我有一个核心算法,它随机选择一种专门的算法(在编译时专门)并处理这个算法。这些专门的算法是通过函子实现的。

现在的问题是:如何实现一个容器,它是在编译时构建的,其中核心算法可以首先检查这个容器的大小(“我有 4 个算法 -> 需要随机选择算法 0-3”)然后可以在此容器中执行函子(“随机选择 2 -> 处理容器中的第三个函子”)。

如何尽可能简单地实现它?我想这是可能的。

奇怪地重复出现的模板习语有什么联系吗?(维基链接
有没有使用Boost::Fusion的简单方法?(官方文档

编辑:所有算法都将用于核心算法。使用模式(随机数)是运行时决策(所以我不需要编译时随机数)。该算法只需要知道函子的容器和该容器的大小即可安全访问。

0 投票
1 回答
164 浏览

language-agnostic - 这个高阶函数有名字吗?

我在我的代码和库中随处可见这种模式,但似乎没有我可以在任何地方找到的名称或抽象。

示例(伪代码)

基本上:取一个值,以及一个转换该值的函数。制作该值的副本,对其进行转换并返回它。

现实生活中的例子(C++)

基本上,您有一个就地功能(有副作用)并从中制作了一个不合时宜的功能(没有副作用)。

这种模式有名字吗?您知道使用它的任何库或语言吗?显然函数式语言不会使用它,因为它们一开始就没有引用不透明的函数。

0 投票
1 回答
252 浏览

java - 具有包含泛型类本身引用的数组列表的泛型类

我主要有:

我需要在类 Node 中包含指向 adiacent 节点的指针

但是java抛出NullPointerException

请帮我。

0 投票
3 回答
1156 浏览

c - C中的通用实现

嗨,

当我为课堂作业实现一些程序时,我突然想到使用 C 以通用方式实现相同的程序。

我确实知道我们需要使用 void 指针和函数,但我只是不知道该怎么做。请给我一个简单的例子并演示用法。

比如如何实现一个比较函数来实现一个比较排序,或者插入一个链表,其中每个节点都有一个不同类型的元素等......

PS:任何指向其他问题或文章的链接都是有帮助和欢迎的。

0 投票
2 回答
230 浏览

c++ - 如何为多个函数或结构使用单个模板语句?

我一直在尝试将 Stacks 表示为模板,我使用了一个 struct 并且一切都很好,但是每次我想编写模板函数时,我都必须编写相同的模板语句,这似乎不正确 - 尽管在职的-

那么如何为所有函数编写一个模板语句?,这是我的代码:

希望我的意思现在很清楚,抱歉这个小问题:(

提前致谢。

0 投票
1 回答
1759 浏览

arrays - 递归地将 Map[Int, Map[Int, X]] 转换为 Array[Array[X]]

我正在尝试编写一个函数,将带有整数键的 Maps 转换为相应的数组。我已经完成了基本案例,但我正在尝试编写递归案例(即多维数组:将 Map[Int, Map[Int, X]] 转换为 Array[Array[X]])。

这项任务的产生是因为需要在不知道数组有多大的情况下从流中构造一个数组,从而允许元素以随机顺序从流中脱落,以及重复元素从流中脱落的可能性。

我有一个功能:

请注意,我知道如果地图包含密钥 k 但不包含密钥 i 其中 0 <= i < k,则代码将失败。这对我的目的来说是可以的。

现在我希望对任意深度的多维数组做同样的事情。例如,将 Map[Int, Map[Int, X]] 转换为 Array[Array[X]]。不幸的是,我被这些类型绊倒了。使用上述作为基本案例,这是我目前所拥有的:

这是我得到的错误:

'=>' 预期但 'forSome' 找到。

由于这是一项教育追求,因此非常感谢任何反馈。具体来说,我将不胜感激任何对我看起来很像 java 的代码的代码批评、做同样事情的现有 scala 函数,或者对构建这些数组的替代方法的建议。