枚举类型:整数/枚举“ case”声明中逗号后的预期标识符

时间:2019-05-24 12:36:12

标签: swift enums

我有一个UISegmentedControl的模型。 我的enum出现错误,我不知道这是什么。

我想在SegmentedControl中拥有: 索引0 = 1(Int) 索引1 = 2(Int).....

我的代码和链接上的视图。

3 个答案:

答案 0 :(得分:1)

您的枚举中不需要逗号。如果您想要一个Int枚举,您应该写

enum MamsEntreeGout: Int {
   case firstValue           = 1
   case secondValue          = 2
   case thirdValue           = 3
   case fourthValue          = 4
 }

与其他枚举相同。

享受

答案 1 :(得分:0)

Swift中,您不能直接将Int的值定义为enum's case,即下面的enum无效。

enum MamsEntreeGout {
    case 1
}

相反,您应该创建一个enum's casessyntax相同的variables,即

enum MamsEntreeGout {
    case first
}

Swift中,enum's cases没有其他语言中的default values。因此,如果要将cases与任何value关联,则必须指定Raw Type,即

enum MamsEntreeGout: Int {
    case first
}

在上面的代码中,IntRaw Type的{​​{1}}。

  

当整数用于原始值时,每个值的隐式值   案件比以前的案件多一个。如果不是第一种情况   设置了一个值,其值为0。

因此,如果enum MamsEntreeGout具有values作为case,则无需为每个enum定义Raw Type

因此,您可以像这样定义Int

enums

enum MamsEntreeGout: Int { case first = 1, second, third, fourth } , separated cases中是绝对允许的。

要访问Swift中的任何Int的{​​{1}}值,请对cases使用 enum ,即< / p>

rawValue

答案 2 :(得分:0)

枚举中的标识符不能是数字或以数字开头,它必须是字母(a-z,A-Z),下划线或某些Unicode字符,请参见https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#grammar_identifier-head

所以

list = open("list.txt", "r")
keyword = input("instert keyword: ")

for element in list.readlines():
  print(element)
list.close()
#this print out every element in the list
#how can I print an element which contains a specific keyword?

不允许,但

enum bad {
    case 1, 2word, 3.0
}

可以正常工作