我正在尝试以下代码:

enum SideType
{
    Vex;
    Cav;
    Plano;
}

function drawLense(aLeftType:SideType){

switch (aLeftType)
        {
            case Cav:
                leftCenter = -aRadius - d * 0.5;

            case Vex:
                leftCenter = -Math.cos(( -90 + offset) * Math.PI / 180) * aRadius-d*0.5;

            case Plano:return ;
            case Cav, Vex:
                points1= drawCurve(1, -90 + offset + trim, 180 - offset * 2 - (trim * 2), leftCenter, aRadius);
                _LB = points1[0];
                _LA = points1[1];

        }
}


但是编译时出现错误:

characters 8-16 : This pattern is unused


因此,它指向案例Cav,Vex:

在上述情况下,如何检查Cav或Vex?

编辑

我发现如果删除case Cav和Case Vex,那么Case Cav,Vex将可以工作,但这不是我想要的,我不能在or或experision中重复使用模式吗?
喜欢(案例Cav || Vex)?

case(Cav || Vex)将导致:

src/com/optics/components/Lense.hx:343: characters 8-38 : Case expression must be a constant value or a pattern, not an arbitrary expression

最佳答案

简短的答案:目前无法,您只能在一处匹配一个枚举选项(不计算受保护的选项)。因此,为每个枚举选项复制代码并过上幸福的生活(此代码也将更易于阅读)或使用秒切换(在某些更复杂的情况下可能更短,更容易)。

10-01 14:25