问题标签 [name-collision]

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 投票
1 回答
1091 浏览

c - 在 C 中修复来自不同库的冲突类型的标准方法是什么?

我正在尝试将 3rd 方库包含到.c文件中,但它会给出重新定义冲突类型错误,因为它具有同名的 typedef 结构。

在阅读了 SO 中的一些答案后,我尝试包含警卫,显然直接更改.h文件上的 typedef 已经解决了这个问题。

例如(还必须更改函数返回类型)

但是,原始代码如下:

它抛出以下错误:

我想知道解决此问题的标准方法是什么,而不是更改.h文件中的定义

0 投票
2 回答
1335 浏览

python - Python - 从未通过 __init__.py 导入的包中访问模块?

我正在使用一个包,__init__.py它只从模块中导入一个变量,但整个模块本身没有暴露。有没有办法访问该模块?

让我们看一下这种情况:

整包:

现在内容:

__init__.py

test_me.py

现在,如果我导入 package test_package。我只能访问变量test_me,它是Test类的一个实例。虽然我不能访问STATIC变量,因为模块本身没有暴露。

在这种情况下,有没有办法访问test_me模块而不仅仅是其中一个变量?

PS如果我使用sys直接将路径附加到该包的模块,当我尝试导入它时会抛出该模块不存在的错误。

0 投票
1 回答
86 浏览

oop - 接受两个接口中函数的名称冲突

这是语言不可知论的,因为我的问题适用于任何具有该interface概念的语言。(或快速协议)

在 C# 中考虑这个程序:

或在 C++ 中: https ://godbolt.org/z/dFLpji

我很难理解为什么这是可以容忍的,尽管看起来所有可能的符号引用都是明确的,因为静态类型将指定我们正在谈论的函数。

但是,隐藏姓名不是很危险吗?

我正在考虑的问题的说明:

0 投票
0 回答
886 浏览

typescript - 与 TypeScript 中的全局类型冲突

我想在 TypeScript中使用我自己的全局类型(没有import, using )。declare type例如:

但是,由于或任何外部库而存在冲突(TS2300: Duplicate identifier 'Function'.) 。lib.es5.d.ts有没有办法忽略现有的Function声明并使用我自己的?

我知道的唯一解决方案是将所有自己的类型放入命名空间:

0 投票
0 回答
85 浏览

c++ - 运行时符号解析:两个共享库之间的冲突;问:任何不涉及重命名符号之一的修复?

一个应用程序链接到两个不同的共享库,每个共享库在本地定义和引用相同的符号(在链接时相同;例如在修改之后)......

在运行时,其中一个库中的代码最终会使用另一个库中的符号定义。

显而易见的解决方案是重命名其中一个符号,但这些是第三方库,这很困难。

有没有办法强制链接器优先在动态链接的库中解析符号?

0 投票
2 回答
357 浏览

python - 如何避免 python 装饰器函数中的名称冲突

我想编写一个python装饰器,以便再次运行引发异常的函数,直到它成功,或者在放弃之前达到最大尝试次数。

像这样:

我的问题是我想要保证无论 kwargs 包含什么名称,都不会与用于表示尝试次数的名称发生冲突。

attempts但是,当函数本身作为关键字参数时,这不起作用

在此示例中,如果运行 other,它将运行 z 次而不是 MAXIMUM 次(请注意,要发生此错误,必须在调用中显式使用关键字参数!)。

0 投票
2 回答
35 浏览

php - PHP命名空间函数冲突

我使用命名空间。

我有一个与原生 PHP 函数同名的函数。

问题不在于我创建了一个同名的函数。当我尝试在其中使用本机 PHP 函数时。然后它使用 MY 函数而不是本机函数。那是因为我在命名空间内。

有没有办法在trim不使用我的命名空间的情况下调用函数内部的函数调用?

0 投票
1 回答
559 浏览

javascript - 重置/重新加载 IFrame JavaScript 上下文

我正在创建一个由文本框和<iframe>元素组成的交互式代码编辑器。每当用户在文本框中键入代码时,都会写入 IFrame 的内容,并且 IFrame<script>内的标签会填充代码文本框的内容,从而导致用户键入的代码在 IFrame 内运行。每次用户键入时,应重置/重新加载 IFrame,并使用 IFrame 脚本标记中文本框的新内容再次写入文档,本质上是在键入时自动运行他们键入的任何代码。

然而,当我这样做时,我注意到命名空间冲突是因为用户在他们的代码中声明的变量将在 IFrame 刷新之间持久化。我通过将插入的代码包装到 IIFE 中来解决此问题,但随后注意到当用户运行一个循环然后重新加载 IFrame 两次时,将运行两个循环。

显然,IFrame 的 JavaScript 上下文没有被重置。我已经尝试过这里给出的答案,包括使用重新加载 IFrame.contentWindow.location.reload()以及更改 IFrame 源,.src = "about:blank"但这些只是重置文档的内容,而不是 IFrame JavaScript 上下文,根据这些答案,如果 IFrame 位于同一域上,则该上下文将持续存在.

这是我正在使用的实际代码(克隆存储库 -> 运行npm install-> 运行npm run dev-> 打开examples/Sandbox/index.html)。

这是该问题的最小可重现示例(依赖于 ID 的 IFrame 元素上的存在frame):

请参阅 JSFiddle

请注意,它updateFrame()被调用了两次,它应该重新加载 IFrame 的内容,只留下第二个循环运行,但是两个print()循环同时打印到控制台,表明上下文在整个重新加载过程中保持不变。

预期的行为是 IFrame 内容JavaScript 上下文应该在重新加载之间完全重置。在示例中, only2: ...应该重复打印到控制台,而不是同时打印1: ...and 2: ...。如何刷新 IFrame,使其 JavaScript 上下文不会在重新加载过程中保持不变,并且与手动重新加载页面的作用基本相同?

0 投票
4 回答
274 浏览

c# - 使用 Fisher-Yates 算法(C#)后的随机字符串冲突

我正在从exercism.io做一个练习,我必须在其中为机器人生成随机名称。在我完成这个测试之前,我能够通过大部分测试:

经过一番谷歌搜索,我偶然发现了几个解决方案,并发现了 Fisher-Yates 算法。我试图将它实现到我自己的解决方案中,但不幸的是,我无法通过最终测试,我很困惑。如果有人能指出我正确的方向,我将不胜感激。我的代码如下:

编辑:我忘了提到字符串的格式必须遵循:@"^[AZ]{2}\d{3}$"

0 投票
1 回答
46 浏览

php - 随机排序名称列表以根据 2 个限制创建第二个列表(地图)

我有一个名字列表:

我想随机排序这个列表以生成这样的array_map:

有2个限制:

  1. 名称不能分配给自身,例如"Claudio" => "Claudio"

  2. 排序不能有不同的结果。换句话说,如果它在第一次运行时生成结果,那么在所有其他时间运行时,它必须生成相同的结果。

我正在考虑使用某种类型的哈希检查,但这并不能保证会为自己分配一个名称。

我试着用

但是如果数组中的元素数量是奇数,这将不起作用,在我的示例中,我将在行中遇到问题

有什么方法可以对这个不违反 2 个限制的名称列表进行排序?