问题标签 [sequences]

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 投票
2 回答
1530 浏览

mysql - MySql自增列增加10的问题

我是一家为我的 MySql 数据库提供服务的主机公司的用户。由于它们的复制问题,自动增量值增加了 10,这似乎是一个常见问题。

我的问题是如何模拟(安全)自动增量功能,以便该列具有连续的 ID?

我的想法是实现一些序列机制来解决我的问题,但我不知道这是否是最佳选择。我在网上找到了这样一个代码片段:

这似乎完全正确。我的第二个问题是这个解决方案是否是并发安全的?当然 INSERT 语句是,但是 ON DUPLICATE KEY 更新呢?

谢谢!

0 投票
2 回答
1363 浏览

oracle - 在 Oracle 中使用触发器模拟 IDENTITY/AUTOINCREMENT 列有多糟糕?

我维护了一个最初编写为特定于 SQL Server 的应用程序(使用 IDENTITY 字段)。因此,我们必须定义很多触发器来自动增加表的主键。

有人告诉我,这在甲骨文世界中被认为是一种 hacky 解决方法,但这是以“朋友的朋友”的方式告诉我的。使用触发器从序列中增加主键而不是直接使用序列有多大意义?

0 投票
3 回答
1070 浏览

sequences - 如何求解等差数列?

如何:

(1 + 2 + ... + N) / N = (N + 1) / 2

或者

(1 + 2 + ... + N + N) / N = (N + 3) / 2

我的教科书说这是初等数学,但我忘记了找到答案的方法。

0 投票
1 回答
318 浏览

c - Oracle OCI 触发器创建

有没有办法使用 OCI API 创建触发器?

我需要以编程方式执行以下操作:

0 投票
4 回答
285 浏览

math - 你如何从 N+1 + N + 1 + ... + N + 1 + N + 1 得到 N(N+1)?

如何:

等于 N(N + 1)?不应该是 4N + 4 或 4(N + 1) 吗?

0 投票
1 回答
1958 浏览

c++ - 如何扩展 std::basic_streambuf 以将任何可迭代序列视为流?

注意:根据回复进行编辑以获得更合适的答案。

我有一组多年来制作的 C++ 模板,我称之为 Joop。它主要包含不完全属于“通用”类别但足够有用的库,以至于我不断地将它们拍打到不同的项目中,因此它们中的大多数在其他库中没有等价物,例如 Boost。

其中一类是seqstream. 这个想法是它允许您将任何可迭代序列视为普通的类似 STL 的流,其“字符​​类型”是序列的值类型。

这个类的基本原理是双重的。首先,它应该提供一个界面,使任何潜在的非线性、非连续序列看起来是线性和连续的;其次,它应该将流中的任何对象视为一个单一的、复杂的、大字符。有一种将流视为序列的标准方法,那么为什么不反过来呢?

目前,seqstream为第一个、最后一个和当前元素包装了三个迭代器。我想seqstreambasic_seqbuf可以插入标准流的替换。谁能提供资源让我开始扩展std::basic_streambuf以提供这种行为?

此外,如果seqbuf允许可写,则将对象写入 很可能不会seqbuf序列化对象,而是对方法进行适当的调用或使用用户指定的插入迭代器,例如.insert()std::back_insert_iterator

编辑:

seqstream以下是当前使用方式的示例:

0 投票
6 回答
1646 浏览

c++ - C/C++ 中双引号字符的替代字符组合是什么?

多年来,我一直没有参考 Kernighan 和 Ritchie C,但我记得那里有一个页面讨论了如何输入您无法使用的字符。(在过去,有些键盘缺少像“,〜等”这样的字符)

为了清楚起见,让我举个例子。我不是在寻找一种在字符串中获取引号的方法,而是我想替换它:

有了这个:

出于好奇,我有一个涉及生成 C/C++ 代码的自动化过程,但是(封闭源代码)商业工具涉及在其数据流中去除引号,并且文档非常清楚地说明它们不提供逃避的方法他们。

编辑:

哇,没想到反应这么大。这可能值得对我的过程进行更多详细说明。我正在做自动构建系统,这意味着在更改我正在编译的代码时我会受到某些限制。现在,我们必须接受这样的假设,即我必须将字符串、空格和所有内容放入预处理器定义中。我已经走上了“预处理器定义”的道路。这给我留下了我通常的后备:在操作环境中定义字符串并让项目文件从那里设置定义:

希望是通过在我的构建自动化脚本中执行以下操作,我可以绕过 MSVC 在使用 /D 使用三元组传递给构建的任何内容中去除引号:

我想是时候制定 C 计划了。

0 投票
4 回答
1246 浏览

ruby - Ruby 等效于 C# 的 'yield' 关键字,或者,在不预分配内存的情况下创建序列

在 C# 中,您可以执行以下操作:

这将返回一个包含 1000 万个整数的可枚举序列,而无需在内存中分配该长度的集合。

有没有办法在 Ruby 中做同样的事情?我要处理的具体示例是将矩形数组展平为要枚举的值序列。返回值不必是Arrayor Set,而是某种只能按顺序迭代/枚举的序列,而不是按索引。因此,整个序列不需要同时在内存中分配。在 .NET 中,这是IEnumerableIEnumerable<T>.

对 Ruby 世界中使用的术语进行任何澄清都会有所帮助,因为我更熟悉 .NET 术语。

编辑

也许我最初的问题还不够清楚——我认为yield在 C# 和 Ruby 中具有非常不同含义的事实是造成混淆的原因。

我不想要一个需要我的方法使用块的解决方案。我想要一个具有实际返回值的解决方案。返回值允许对序列进行方便的处理(过滤、投影、连接、压缩等)。

这是我如何使用的一个简单示例get_items

In C#, any method returning IEnumerable that uses a yield return causes the compiler to generate a finite state machine behind the scenes that caters for this behaviour. I suspect something similar could be achieved using Ruby's continuations, but I haven't seen an example and am not quite clear myself on how this would be done.

It does indeed seem possible that I might use Enumerable to achieve this. A simple solution would be to us an Array (which includes module Enumerable), but I do not want to create an intermediate collection with N items in memory when it's possible to just provide them lazily and avoid any memory spike at all.

If this still doesn't make sense, then consider the above code example. get_items returns an enumeration, upon which select is called. What is passed to select is an instance that knows how to provide the next item in the sequence whenever it is needed. Importantly, the whole collection of items hasn't been calculated yet. Only when select needs an item will it ask for it, and the latent code in get_items will kick into action and provide it. This laziness carries along the chain, such that select only draws the next item from the sequence when map asks for it. As such, a long chain of operations can be performed on one data item at a time. In fact, code structured in this way can even process an infinite sequence of values without any kinds of memory errors.

So, this kind of laziness is easily coded in C#, and I don't know how to do it in Ruby.

I hope that's clearer (I'll try to avoid writing questions at 3AM in future.)

0 投票
3 回答
226 浏览

mysql - MySQL id 序列

这是在 MySQL 中生成 id 的正确方法吗?

插入图片(PictureId,First_pick,Title,Description,File_Name,Is_Vertical)VALUES
((SELECT max(pictureid)+1 FROM Picture),0,?,?,?,?)

我的意思是,当这个查询由许多线程运行时,是否保证 PictureId 是唯一的?

我无法修改表结构。我应该使用任何特定的锁、索引或事务隔离级别吗?

问候, 迈克尔

0 投票
2 回答
370 浏览

python - 在 Python 中实现 __concat__

我试图实施__concat__,但没有奏效

我怎样才能解决这个问题?