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