问题标签 [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.
c# - 组合返回和切换
我怎样才能结合return
和switch case
陈述?
我想要类似的东西
我知道这个解决方案
但我只想使用return
运算符。
c# - C#中的多变量switch语句
我想使用一个带有多个变量的 switch 语句,如下所示:
有没有办法在 C# 中做这样的事情?(出于明显的原因,我不想使用嵌套的 switch 语句)。
.net 开发团队通过实现这个恐惧来回答这个问题:Multi-variable switch statement in C#
c# - C#如何使用带开关的枚举
我不知道如何将开关与枚举结合使用。你能告诉我我做错了什么,以及如何解决吗?我必须使用枚举来制作基本的计算器。
最终结果应该是这样的:
你们能告诉我我是怎么搞砸的吗?
c# - 有没有办法将“抛出新的异常()”挤压到一个对象中?
其他一些高级语言,如 Haskell 和 Perl 6 提供了允许抛出异常的语法糖,即使在语法需要对象的地方也是如此。当使用该值时,它的行为就好像它变成了一个抛出的异常(在以下非常人为的示例中,这将立即发生):
上面的帮助器允许从允许值但不允许语句的地方抛出异常。我可以按如下方式编写此函数,尽管它不如 Haskell 或 Perl 6 代码那么酷,因为没有惰性求值:
有什么规范的方法可以做到这一点,或者有什么好的理由不这样做?
编辑:
throw new Exception()
实际上,直到发布此内容后,我才尝试在 C# 7 中使用as a value。这就是答案,或多或少。我会留下这个,以防将来人们搜索 C# 相当于 Perl 6 的Failure
类或 Haskell 的error
.
java - 为什么不完整的switch表达式编译成功
试用JDK/12 EarlyAccess Build 20,其中JEP-325 Switch Expressions已作为预览功能集成。表达式的示例代码(在 JEP 中也是如此):
我试图按照上一个问题中关于如何使用 Maven 编译 JDK12 预览功能并使用命令行执行上述代码块的相同过程:
出乎我的意料,我收到以下错误:
我知道该文档指出该代码是错误的,并且将注释替换为break 1;
解决了它,但我的问题是:
Q1。为什么编译阶段同样成功?这不应该在编译时失败吗?
Q2。我看到如此详细的错误消息的原因是什么?该--enable-preview
功能可以对此负责吗?
java - 从 Java-12 中的 switch 表达式返回泛型值
我想知道是否有从 Java 12 switch 表达式返回泛型类型的选项。
基本代码可能如下所示:
有什么反对这样做的吗?
编辑:
也许是我的案例中更好的例子:我需要几个代表原始和复杂数据结构的类。我还有工厂方法,它DataPointValue
基于来自其他系统的枚举和未知值创建它(让我们忘记强制转换异常):
移动这段代码并使用 Java 12 中的 switch 表达式有什么好处吗?
java - Java 12 intellij 开关表达式不起作用
我尝试在 IntelliJ 中使用 Java 12,但是当我尝试运行我的应用程序时出现错误
我在应用程序配置 VM 选项中添加了 --enable-preview 但仍然出现此错误。我添加了 SDK 路径。有人知道我做错了什么吗?
c# - 如果我的 C# switch 表达式不是详尽的会发生什么?
在 C# 8 中,引入了 switch 表达式。如果 switch 表达式不详尽会发生什么?换句话说,如果我不测试每个可能的值会发生什么?
c# - C# 8 switch 表达式具有多个具有相同结果的情况
如何编写 switch 表达式以支持返回相同结果的多种情况?
在版本 8 之前的 C# 中,可以这样编写开关:
当我使用带有表达式语法的 C# 版本 8 时,就像这样:
所以我的问题是:如何将案例 1、2 和 3 变成一个 switch-case-arm,这样就不需要重复该值?
根据“ Rufus L ”的建议更新:
对于我给定的示例,这是有效的。
但这并不是我想要完成的。这仍然只是一种情况(带有过滤条件),而不是多种情况产生相同的右手结果。