问题标签 [optional-variables]

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

vb.net - VB.NET := 运算符

以下是什么意思?

这个运算符叫什么,它有什么作用?

0 投票
2 回答
145 浏览

java - 如何在 Java 中处理对象的可选变量?

对于我的交易程序,我有一个商人课程。给定的商人对象可能具有也可能不具有特定的特殊品质或特殊品质束。例如,一个 Merchant 对象可能具有 Stockbroker 品质,另一个 Merchant 可能具有 Financial Services 和 Stockbroker 品质,而另一个 Merchant 可能根本没有特殊品质。

我最初的想法是创建一个 HashMap 和一个 Qualities 类,如下所示:

唯一的问题是,对于商人来说至少有 50 种可能的特殊品质,因此将所有品质从 Quality 类中子类化会非常令人厌烦。

有没有比 HashMap 和子类化 Qualities 类更好的方法来编码这些可选的特殊品质并在 Merchants 类中表示它们?

0 投票
2 回答
1078 浏览

c++ - boost::optional<> 在联合中?

我有一个可选的 POD 结构,它将包含在联合中。
boost::optional<>按值保存它的类型,所以我认为这可以工作:

但是 VS2008 抱怨说我的bar结构现在由于元素而具有一个复制构造函数。boost::optional<details>

作为替代,我添加了一个布尔标志来指示可选参数是否有效,但它很笨重:

我考虑实施details::operator bool()以返回details::valid变量,但这很模糊并且对人类不利。
boost::optional<>清楚地记录语法和意图,不需要侦探工作。

最后,helper联合需要是 POD,所以我不能做任何动态分配 - 否则我会使用指针。

boost::optional<>对在联合中可用的语法相似的东西有什么建议吗?

0 投票
4 回答
3931 浏览

c++ - 通常在 C++ 中将“可选”字段封装在结构中的最佳方法?

我有许多具体结构,我想将字段指定为可选(存在或不存在)。只是想知道人们有什么想法来实现这一目标。这是一个示例结构(字段也可以是其他结构,甚至是结构的向量):

我想将所有字段默认为不存在并一一启用它们,也许在它们的设置器中。由于生成了这些结构,因此最好使用通用方法。

到目前为止,我的想法是:

  1. 指示字段是否已设置的字段位图
  2. 使用标记值("\0" 代表 std::string,-1 代表 int,-1.0f 代表 float
  3. 某种模板容器/代理封装每个字段以指示它是否已设置,有什么想法吗?我认为这可能是最好的方法。

顺便说一句,使用地图或其他 STL 容器来封装字段在这里不起作用,它们需要是具体的结构。

0 投票
4 回答
672 浏览

c# - C# 中可选 (VB) 参数的替代方案?

有人告诉我,C# 中没有可选参数之类的东西。但是您可以使用重载功能并输入具有默认值的变量,例如:

我的问题是,当从 VB6 重载方法调用 C# 组件时,往往会将名称更改为例如“Person(字符串名称),Person _1(字符串名称,整数年龄)”等,并且在beeing 时不能使用具有默认值的变量“出”变量。

但是怎么样

??

有人可以向我解释它是如何工作的,我是否可以用它来模拟 VB6 中的可选变量?

0 投票
2 回答
26279 浏览

c# - 多个可选参数调用函数

假设我有一个像下面这样的函数它需​​要 3 个参数和 2 个可选值

现在我想像下面这样调用这个函数怎么可能?

所以我希望它使用默认参数 b=2

但它以这种方式给出错误。

这里的错误信息

C# 4.5

0 投票
1 回答
1383 浏览

sparql - 为空属性生成值

Optional我正在尝试填充使用SPARQL 查询语言生成的空白。有什么方法可以实现这一目标吗?

可选变量上的使用会!bound生成真或假,但我想用自己的值填充单元格,例如“?” 或“未知”。

0 投票
1 回答
471 浏览

properties - 不将属性声明为可选会导致“属性未在 super.init() 处初始化”错误

我为协议编写了​​以下代码。我将引用传递给委托变量并使用它来调用接口/协议函数。但是,如果我?声明 Protocol 对象,则不会产生错误。如果我不这样做,它会给我一个错误

属性 self.delegate 未在 super.init() 处初始化。

这是为什么?

0 投票
1 回答
568 浏览

swift - swift中可选变量/常量的预期用途是什么

在 objC 中,

打印“ interValue (null)” “捕获的空对象”

并且通过在 if 条件中使用 !(not) 运算符安全地完成绑定......

但是,在 swift 中,使用可选变量的等效代码段是

这个“可选绑定”也在objectiveC中完成,那么具有可选变量/常量的确切用途是什么。也有人说我们可以避免返回 null 对象,而是可以返回 nil 值。当我们返回一个空对象时有什么问题,它会导致性能问题吗?你的正确想法....

0 投票
2 回答
899 浏览

swift - Swift 可选类型语法

根据 Apple 的 Swift 指南,当您拥有以下 Array 和以下函数来搜索 Array 时:

...因此您可以通过以下方式捕获此函数返回的 Optional Int - 然后检查它是否存在nil

这一切都很好 - 但他们的下一个示例,他们通过将 2 个语句合并为一个来简化代码 - 让我感到困惑,因为他们突然放弃了可选的“?” 和 ”!” 从他们的语法:

这非常有效。

那么为什么在第一个示例nameIndex中声明为“?” - 像这样:

并且使用“!”进行强制展开

但在第二个例子中既不是“?” 或者 ”!” 一个在语法中使用?