代码之家  ›  专栏  ›  技术社区  ›  mducc

科特林的“何时重复”是什么?

  •  6
  • mducc  · 技术社区  · 6 年前

    我写的代码如下:

    when(month){
            1 or 7 -> arrHoangDao = arrayListOf("Tý", "Sửu", "Tỵ", "Mùi")
            2 or 8 -> arrHoangDao = arrayListOf("Dần", "Mão", "Mùi", "Dậu")
            3 or 9 -> arrHoangDao = arrayListOf("Thìn", "Tỵ", "Dậu", "Hợi")
            4 or 10 -> arrHoangDao = arrayListOf("Ngọ", "Mùi", "Sửu", "Dậu")
            5 or 11 -> arrHoangDao = arrayListOf("Thân", "Dậu", "Sửu", "Mão")
            /* 6 or 12 is duplicate */
            6 or 12 -> arrHoangDao = arrayListOf("Tuất", "Hợi", "Mão", "Tị")
        }
    

    我收到的信息是“复制时间”。这是什么意思?

    1 回复  |  直到 6 年前
        1
  •  20
  •   Tim Abhishek Kumar    6 年前

    你在用 bitwise OR or 是的。这意味着 1 or 7 评估为7和 4 or 10 计算结果为14。 6 or 12 也恰好计算为14,因此编译器告诉您它是重复的。

    解决方案:使用 , 而不是 是的。有关如何使用when语句的详细信息 here 是的。