【问题标题】:How to write a fall-through switch statement in Stanza?如何在 Stanza 中编写贯穿式 switch 语句?
【发布时间】:2021-03-06 03:36:15
【问题描述】:

我正在 Stanza 中编写一个 switch 语句,我的一些案例是相同的。我想尽量减少代码重复。如何将案例合并在一起?

val a = randomSmallInteger()
switch(a) :
  0 : println("zero")
  1 : println("one")
  2 : println("two or three")
  3 : println("two or three")

我想它看起来像

switch(a) :
  0 : println("zero")
  1 : println("one")
  2,3 : println("two or three")

【问题讨论】:

    标签: stanza


    【解决方案1】:

    Stanza 不支持其 switch 语句的贯穿行为。以下不是很惯用的(我会推荐一个简单的 if-else 链),但它看起来与您的代码非常相似。它使用 switch 语句的一般形式,其中闭包用于谓词。

    switch contains?{_, a} :
      [0] : println("zero")
      [1] : println("one")
      [2, 3] : println("two or three")
    

    帕特里克

    【讨论】:

    • 谢谢,您的解决方案保留了我想到的格式!
    猜你喜欢
    • 2023-02-01
    • 2023-03-25
    • 2021-05-04
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    相关资源
    最近更新 更多