问题标签 [null]

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

sql - 字段值必须是唯一的,除非它为 NULL

我正在使用 SQL Server 2005。

我有一个必须包含唯一值或 NULL 值的字段。我认为我应该使用 aCHECK CONSTRAINT或 a来执行此操作TRIGGER for INSERT, UPDATE

在这里使用约束而不是触发器有优势吗(反之亦然)?这样的约束/触发器可能是什么样的?

还是我没有考虑过其他更合适的选择?

0 投票
6 回答
54505 浏览

sql - T-SQL 存储过程 NULL 输入值导致 select 语句失败

下面是一个存储过程,用于根据单独检查所有字段来检查数据库中是否存在重复条目(不要问我为什么要这样做,它只是必须这样)。

这听起来非常简单,但 SP 失败了。问题是传递给 SP 的某些参数可能具有 null 值,因此 sql 应该读取“is null”而不是“= null”。我用 exec() 和 sp_executesql 尝试了 isnull()、case 语句、coalesce() 和动态 sql,但未能实现其中任何一个。这是代码...

0 投票
2 回答
2241 浏览

linq - LINQ - 更新空整数数据字段

当我设置时,我有一个数据类型为int?price 的字段并允许 null

和更新,它不会被保存,也不会抛出任何异常,当我改变值#null时,就可以了。我想将其设置为空。

0 投票
9 回答
19621 浏览

c++ - 如何使用 memset 将指向内存的指针设置为 NULL?

我有一个结构

我想设置 to 的地址,p_my_t到目前为止NULL,这就是我尝试这样做的方式:

不过,这对我来说并不合适。这样做的正确方法是什么?


修改问题 - 提出一个更复杂的问题

这是我正在尝试做的事情:

  • 两个进程,A 和 B
  • A、B中的malloc p_my_t有N个线程,可以访问
  • 开始在 A 中删除,但我不能简单地释放它,因为 B 中的线程可能仍在使用它。
  • 所以我调用了一个函数,将 p_my_t 的地址传递给 B 以在 B 中将其地址设置为 NULL,这样 B 中的其他线程就不能再使用了
  • 从 B 回调后,我在 A 中释放内存

注意:没有标准的方法可以通过进程之间的共享内存来管理内存分配。您将不得不对正在发生的事情做一些相当仔细的思考。

0 投票
4 回答
1172 浏览

.net - null 在 .NET 中如何表示

我正在与一位同事交谈,并且出现了 null 的主题。他告诉我,在幕后的 .NET 中,这只是一个非常小的数字。我一直认为该对象只是没有指向堆上任何内存的指针,但我不确定哪种方式。

所以我希望社区可以为我们清理它;P

0 投票
3 回答
14698 浏览

sqlite - SQLite3:在 C++ 中插入带有 NULL 字符的 BLOB

我正在开发一个 C++ API,它使用定制设计的插件来使用它们的 API 和特定的 SQL 语法与不同的数据库引擎进行交互。

目前,我正在尝试找到一种插入 BLOB 的方法,但由于NULL是 C/C++ 中的终止字符,因此在构造INSERT INTO查询字符串时 BLOB 会被截断。到目前为止,我已经与

我希望,如果可以在 SQLite3 交互式控制台中执行此操作,那么应该可以使用正确转义的NULL字符构造查询字符串。也许有一种方法可以使用 SQLite SQL 语法也支持的标准 SQL 来做到这一点?

肯定有人以前遇到过同样的情况。我用谷歌搜索并找到了一些答案,但使用的是其他编程语言(Python)。

预先感谢您的反馈。

0 投票
8 回答
27810 浏览

database - 处理用户输入时的 NULL vs Empty

是的,另一个 NULL 与空字符串的问题。

我同意 NULL 表示未设置,而空字符串表示“空值”的想法。这是我的问题:如果列的默认值为 NULL,我如何允许用户输入该 NULL。

假设在系统上创建了一个新用户。有一个名字和姓氏字段;姓是必需的,而名字不是。创建用户时,此人将看到 2 个文本输入,一个用于第一个,一个用于最后一个。此人选择仅输入姓氏。名字在技术上没有设置。在插入期间,我检查每个字段的长度,将所有为空的字段设置为 NULL。

查看数据库时,我看到没有设置名字。立即想到的问题是,也许他们从未见过名字字段(即,由于错误)。但这种情况并非如此; 如果空白,他们就离开了。

所以,我的问题是,当接收用户输入时,您如何决定何时将字段设置为 NULL 或空字符串?你怎么知道用户希望在没有检测到焦点的情况下不设置该字段,或者他们是否删除了一个值......或......或......?

相关问题:我应该使用 NULL 还是空字符串来表示表列中没有数据?

0 投票
11 回答
31465 浏览

java - 如何显示方法是否可能返回 null

在发布了这个问题并阅读这个问题之后,我意识到知道一个方法是否应该返回 null 或者这是否被认为是错误条件并且应该抛出异常是非常重要的。还有一个很好的讨论何时返回 'null' 或抛出异常

我正在编写一个方法,并且我已经知道是否要返回 null 或抛出异常,表达我的决定的最佳方式是什么,换句话说,记录我的合同?

我能想到的一些方法:

  • 把它写在规格/文档中(有人会读吗?)
  • 使其成为方法名称的一部分(正如我在这里建议的那样)
  • 假设每个抛出异常的方法都不会返回 null,而每个“不”抛出的方法都可能返回 null。

我主要是在谈论 java,但它也可能适用于其他语言:为什么有一种正式的方式来表达是否会抛出异常(throws关键字),但没有正式的方式来表达是否可能返回 null?

为什么没有这样的东西:

总结与结论

合同的表达方式有很多种:

  • 如果您的 IDE 支持它(如 IntelliJ),最好使用注释,@NotNull因为它对程序员可见并且可用于自动编译时检查。Eclipse有一个插件可以添加对这些的支持,但它对我不起作用。
  • 如果这些不是一个选项,请使用类似Option<T>or的自定义类型NotNull<T>,这可以增加清晰度并至少进行运行时检查。
  • 无论如何,在 JavaDoc 中记录合同永远不会有害,有时甚至会有所帮助。
  • 使用方法名称来记录返回值的可空性不是由我以外的任何人提出的,尽管它可能非常冗长且并不总是有用,但我仍然相信有时它也有其优点。
0 投票
6 回答
1137 浏览

c# - C#我可以从另一个类中取消一个对象吗

我有一个在一个类中生成的对象

我从客户端类调用此函数,然后有时需要通过创建类通过我的应用程序将其取消。

我可以执行以下操作吗

我曾尝试过 objectToDestroy = null,但认为它不会起作用(而且它没有)

0 投票
5 回答
664 浏览

c# - 检查null,哪个更好?“空==”或“==空”

欺骗:空差

一生前,我看到一篇文章解释了以下不相等(在 c# 中):

该文章解释说,后者是首选,因为它导致更准确的测试。从那以后我就一直这样编码。现在我明白了很多,我一直在寻找这篇文章或其他类似的文章,看看确切的发现是什么,但我找不到关于这个主题的任何东西。

想法?有区别吗?第一眼会说不。但是谁知道在 IL 和 C# 编译的内部会发生什么。