枚举大小写的原始值必须是文字 [英] Raw value for enum case must be a literal

查看:151
本文介绍了枚举大小写的原始值必须是文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个枚举:

enum GestureDirection:UInt {
    case Up =       1 << 0
    case Down =     1 << 1
    case Left =     1 << 2
    case Right =    1 << 3
}

但是在每种情况下我都会出错:

But on every case I get error:

枚举大小写的原始值必须为文字

Raw value for enum case must be a literal

我不明白.

Swift 1.2,Xcode 6.3.2

Swift 1.2, Xcode 6.3.2

推荐答案

这是因为1 << 0不是文字.您可以使用二进制文字,它是一个文字,并且可以在其中使用:

That's because 1 << 0 isn't a literal. You can use a binary literal which is a literal and is allowed there:

enum GestureDirection:UInt {
    case Up =       0b000
    case Down =     0b001
    case Left =     0b010
    case Right =    0b100
}

枚举仅支持raw-value-literal,根据作为一种变通方法,它仍然可以很好地说明您在做什么.

Instead as a workaround and still give a good indication of what you're doing.

这篇关于枚举大小写的原始值必须是文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆