问题标签 [language-concepts]
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.
python - PyCharm 中的错误输出
这是我的作业。当我运行此代码时,我应该得到类似“结果 [(arrivaltime:Mon Mar 9 14:10:00 2020, user:mary, session:42, event:click, usrfield:13)] 的输出,但我得到了输出不正确,即“[< main .Log object at 0x0000000000522100>]”我不明白问题出在哪里。有人可以帮忙吗?
kotlin - Kotlin 中的数组操作
我想问的问题是关于 kotlin 中的编程相关问题。这个问题可能看起来很糟糕,但我想不出如何处理这种情况。
如果我打印出数组,它是空的。我期望的行为是 subAnswer 被清除但数组将包含 [[1,2,3]] 我想知道为什么。它不应该包含 [[1,2,3]] 吗?为什么清除 subAnswer 也会清除数组?以及如何解决?
我认为一个对象被复制并添加到数组中,因此添加到数组和 subAnswer 的对象不共享相同的内存地址。在这种情况下,似乎添加的对象只是 subAnswer 的引用,因此清除 subAnswer 也会影响数组。
如果我想获得预期的行为,我该怎么做?如果有关于这个问题的任何编程概念相关的博客,请告诉我。谢谢你。
c# - 为什么在 C# 控制台应用程序中使用依赖注入时内存利用率不断增加?
我可能知道我发布的问题的答案:我在整个应用程序中使用构造函数依赖注入,这是一个循环的 C# 控制台应用程序,在每次请求后都不会退出。
因此,我怀疑所有包含对象的寿命基本上是无限的。当尝试在注册时调整生命周期时,它警告说由于依赖关系而无法在单例对象上实现瞬态对象(这启发了查看内存利用率和这个问题)。
这是我的第一个基础控制台应用程序,一个机器人,它登录到服务提供商并等待消息。我来自 .NET Core Web API,它再次具有依赖关系,但我认为这里的关键区别在于我的所有代码下方是平台本身,它单独处理每个请求然后终止运行的线程。
我离我有多近?我是否必须将机器人本身与侦听服务提供商的基本控制台应用程序分开,并尝试复制 IIS/kestrel/MVC 路由提供的平台以分离各个请求?
编辑:最初我打算将这个问题更多地作为设计原则、最佳实践或询问方向。人们要求可重现的代码,所以我们开始:
机器人.cs
事件处理程序.cs
信号处理器.cs
这与我的问题没有直接关系,但它使应用程序处于等待模式,而第三方库正在侦听消息。
我最初的观点是基于我对 SimpleInject 所做的一些假设——或者更具体地说,是我使用 SimpleInject 的方式。
应用程序保持运行,等待 SignalHandler._resetEvent。同时,消息通过 Bot.cs 构造函数上的任何处理程序进入。
所以我的想法/理论是 Main 启动 Bot.Process,它直接依赖于 ITelegramClient 和 IEventHandler。在我的代码中,没有一种机制可以让这些资源消失,我怀疑我假设 IoC 将执行魔法并释放资源。
但是,根据 Visual Studio 内存使用情况,向机器人发送消息会不断增加对象的数量。这也反映在实际的进程内存中。
不过,在编辑这篇文章以供批准时,我想我最终可能误解了 Visual Studio 的诊断工具。运行 15 分钟后,应用程序的内存利用率似乎保持在 36 MB 左右。或者它只是一次增加很少,以至于很难看到。
比较我在 1 分钟和 17 分钟时拍摄的内存使用快照,似乎上面创建的每个对象都有 1 个。如果我正确地阅读了这篇文章,我想这证明 IoC 没有创建新对象(或者它们在我有机会创建快照之前就被处置了。
c - 为什么 i=i++ 的 i 值不增加;陈述?
代码:
上面的程序无限打印零,这怎么可能?有说法i=i++;
。请解释为什么i
不增加的值。
python-3.x - 使用 NLTK python API 将新概念添加到 WordNet 或将其他概念库附加到 WordNet
我正在做一个项目,我想使用 WordNet 和 BERT 检索给定句子的语义相似概念列表。但是有些概念没有包含在 WordNet 中。所以我想使用 python 将我自己的概念列表集成到 WordNet 中。但我无法做到这一点。请帮助我或建议我最好的方法。
openedge - W-,P-和I-文件的想法是什么?
我正在使用 Progress Release 11.6 中的 appBuilder 和过程编辑器。
正如前面的一些问题所提到的,我经常遇到 appBuilder 的问题,不想打开文件,损坏它们(删除部分源代码),......,现在的原因之一似乎是程序的限制不能超过 32K,包括评论。
起初我想“我们回到了石器时代吗? ”,请原谅我的反应。
但现在我开始认为我们完全滥用了整个概念,因此我想展示我对 W-、P- 和 I-文件的看法,请确认(或更正):
W 文件仅用于包含 GUI 定义,例如带有一些框架、按钮、填充字段的表单……任何真正的编程都需要在 P 文件中完成。
P 文件包含真正的智能:其中详细说明了程序和功能,可供其他 P 文件使用,或最终由 W 文件使用。
I 文件只是为了包含一般行为。
让我给你举个例子:
W文件:
P文件:
I 文件(about.i):
虽然像这样工作(仅将与 GUI 相关的东西放在 W 文件中,并让“真正的”编程在 P 文件中完成),但永远不会达到提到的 32K 限制。最重要的是,添加过程很容易,appBuilder 不会删除它,因为 appBuilder 永远不会打开 P 文件。
我的观点是否正确(以及 I 文件呢)?
如果是:一个技术问题:如何从 W 文件中的 P 文件启动程序?(显然,提到的例子不能像在 W 文件中那样工作,我没有提到在哪里寻找very_large_procedure
)
java - 关于 Java 构造函数的练习
我有一个练习,显然是在向我们询问基本概念。但我找不到任何信息,或者至少我不确定我应该搜索什么。所以我有一个小班,我需要评论 3 个不同的构造函数。它看起来像这样:
当然,我试图通过我的课弄清楚它,但我没有找到任何东西,所以我认为这是一个基于逻辑的练习......但我缺乏这种逻辑,我真的很想至少真正理解这部分因为它是非常基础的,我将不得不对其进行很多操作。
再次感谢您的指导和时间。
java - 嵌套静态类的 Java 导入通配符可访问性
java 可访问性(或者可能是范围)对于类型导入多级嵌套类是如何工作的?一个例子:
类A.java:
主.java
import 语句在使用通配符时不会导入 NestedAB 类型。一个可能类似的问题让我看到了阐明Type-Import-on-Demand 声明的 java 规范表:
按需类型导入声明允许根据需要导入命名包或类型的所有可访问类型。
该问题的公认答案意味着按需进口声明不是递归的。推理可能是 Java 所认为的“命名类型的所有可访问类型”,以及包的一般概念,但我没有连接这些点,也没有理解可访问类型对于嵌套类的含义。
可以请任何人帮助解释类型导入和可访问性在 java 中是如何工作的(同时忽略通配符导入的有争议的使用)
react-native - 什么是 AsyncStorage *for*?
我可以找到有关如何编写对 AsyncStorage 的调用、它如何在设备上实际存储信息等的信息,以及一些使用存储密钥的基本示例,但我正在寻找的是对我为什么要使用它的更广泛的理解。
我问的原因是我最近不得不重构我们(react-native)移动应用程序的一个区域,该区域存在错误并且 - 并非无关!——变成了一只深不可测的野兽。它以前是一个巨大的单一类,在它的 componentDidMount/unMount 中调用了 AsyncStorage,它在其中存储了一些状态变量。
(从评论来看,至少部分原因与之前的开发者在理解如何在 FlatList 中使用/访问状态有关,但我认为不仅仅是这样)
重构后的代码通过几个独立的功能组件实现了与以前相同的目标,每个组件执行特定的任务。FlatList 调用的所有内容现在都是无状态的,并且刚刚完成测试,之前的所有功能似乎都已匹配。
但是,我意识到我没有使用任何对 AsyncStorage 的调用,我想知道这是否是一件坏事?我可以想象我可以将应用程序这一部分的所有状态存储到 AsyncStorage 中,这样如果它崩溃了,我们就可以跳回到我们到达的任何位置。而且我认为这可能很方便。但这是对异步存储的合理使用吗?你们都用它吗?以前的用例是不是很糟糕,没有它我应该继续前进吗?
(我很欣赏这个问题比我通常寻找/询问的问题更概念化,如果我应该把它放在其他地方,请说!)
php - 当重载一个父方法时,为什么 PHP8.1 转向弃用不兼容的返回类型?
我像这样重载query
了类的方法mysqli
:
在 PHP8.0 中这不是问题。但是,从 PHP8.1 开始,我现在收到此错误:
已弃用:返回类型 of
Repository\MySql\MySql::query($sql, $resultmode = null)
应与 兼容mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool
,或者#[\ReturnTypeWillChange]
应使用该属性暂时抑制第repository\src\MySql\MySql.php
30 行中的通知
我知道如何修复错误——我可能最终会更改方法的名称,因为我想返回一个我自己的自定义对象。
问题
我正在寻找一个从理论和面向对象的角度捕捉这种变化需求的答案,可能使用语言理论,或者将其与其他语言进行比较。
为什么这个改变是必要的?进行此更改的需要或原因是什么?扩展类时,有什么方法可以在 PHP 中允许重载返回类型?