问题标签 [switch-expression]

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

c# - 组合返回和切换

我怎样才能结合returnswitch case陈述?

我想要类似的东西

我知道这个解决方案

但我只想使用return运算符。

0 投票
13 回答
59767 浏览

c# - C#中的多变量switch语句

我想使用一个带有多个变量的 switch 语句,如下所示:

有没有办法在 C# 中做这样的事情?(出于明显的原因,我不想使用嵌套的 switch 语句)。

.net 开发团队通过实现这个恐惧来回答这个问题:Multi-variable switch statement in C#

0 投票
11 回答
251238 浏览

c# - C#如何使用带开关的枚举

我不知道如何将开关与枚举结合使用。你能告诉我我做错了什么,以及如何解决吗?我必须使用枚举来制作基本的计算器。

最终结果应该是这样的:

你们能告诉我我是怎么搞砸的吗?

0 投票
3 回答
86 浏览

c# - 有没有办法将“抛出新的异常()”挤压到一个对象中?

其他一些高级语言,如 Haskell 和 Perl 6 提供了允许抛出异常的语法糖,即使在语法需要对象的地方也是如此。当使用该值时,它的行为就好像它变成了一个抛出的异常(在以下非常人为的示例中,这将立即发生):

上面的帮助器允许从允许值但不允许语句的地方抛出异常。我可以按如下方式编写此函数,尽管它不如 Haskell 或 Perl 6 代码那么酷,因为没有惰性求值:

有什么规范的方法可以做到这一点,或者有什么好的理由不这样做?

编辑:

throw new Exception()实际上,直到发布此内容后,我才尝试在 C# 7 中使用as a value。这就是答案,或多或少。我会留下这个,以防将来人们搜索 C# 相当于 Perl 6 的Failure类或 Haskell 的error.

0 投票
1 回答
759 浏览

java - 为什么不完整的switch表达式编译成功

试用JDK/12 EarlyAccess Build 20,其中JEP-325 Switch Expressions已作为预览功能集成。表达式的示例代码(在 JEP 中也是如此):

我试图按照上一个问题中关于如何使用 Maven 编译 JDK12 预览功能并使用命令行执行上述代码块的相同过程:

出乎我的意料,我收到以下错误:

我知道该文档指出该代码是错误的,并且将注释替换为break 1;解决了它,但我的问题是:

Q1。为什么编译阶段同样成功?这不应该在编译时失败吗?

Q2。我看到如此详细的错误消息的原因是什么?--enable-preview功能可以对此负责吗?

0 投票
2 回答
657 浏览

java - 从 Java-12 中的 switch 表达式返回泛型值

我想知道是否有从 Java 12 switch 表达式返回泛型类型的选项。

基本代码可能如下所示:

有什么反对这样做的吗?

编辑:

也许是我的案例中更好的例子:我需要几个代表原始和复杂数据结构的类。我还有工厂方法,它DataPointValue基于来自其他系统的枚举和未知值创建它(让我们忘记强制转换异常):

移动这段代码并使用 Java 12 中的 switch 表达式有什么好处吗?

0 投票
2 回答
7758 浏览

c# - c# 8.0 switch 表达式中的多种情况

在传统的 C# switch 中,我们有一个可以聚合多个案例的结构。如何在新的 c# 8.0 switch 表达式中完成?

具有多种情况的 switch 语句:

C# 8 开关表达式示例:

0 投票
2 回答
4882 浏览

java - Java 12 intellij 开关表达式不起作用

我尝试在 IntelliJ 中使用 Java 12,但是当我尝试运行我的应用程序时出现错误

我在应用程序配置 VM 选项中添加了 --enable-preview 但仍然出现此错误。我添加了 SDK 路径。有人知道我做错了什么吗?

0 投票
3 回答
2702 浏览

c# - 如果我的 C# switch 表达式不是详尽的会发生什么?

在 C# 8 中,引入了 switch 表达式。如果 switch 表达式不详尽会发生什么?换句话说,如果我不测试每个可能的值会发生什么?

0 投票
6 回答
40966 浏览

c# - C# 8 switch 表达式具有多个具有相同结果的情况

如何编写 switch 表达式以支持返回相同结果的多种情况?

在版本 8 之前的 C# 中,可以这样编写开关:

当我使用带有表达式语法的 C# 版本 8 时,就像这样:

所以我的问题是:如何将案例 1、2 和 3 变成一个 switch-case-arm,这样就不需要重复该值?

根据“ Rufus L ”的建议更新:

对于我给定的示例,这是有效的。

但这并不是我想要完成的。这仍然只是一种情况(带有过滤条件),而不是多种情况产生相同的右手结果。