我想要这样的事情:
enum ArgType { case Case1, case Case2 }
func foo(arg: ArgType) {
// code
}
上面的代码有效,但ArgType
仅用于函数foo
,所以我更喜欢它在某种程度上“限制”在函数的范围内,我应该怎么做?
func foo(arg: T) where T = enum _ { case Case1, case Case2 } {
// code
}
// this doesn't compile, I put this here just for an example for what I want
答案 0 :(得分:0)
如果仅限于该功能。怎么会打电话呢?
[我知道这不是答案]
答案是:
没有机制只能将类型限制为功能类型
(也许函数。是私有的,标记私有的类型文件可以帮助吗?)
答案 1 :(得分:0)
您无法将Enum标记为私有,并在类范围之外使用它。如果要封装枚举,可以在类/结构的范围内定义它。
struct Identifier {
enum Cell {
case Base
case Home
}
func getIdentifier(identifier: Cell) -> String {
return "An Identifier"
}
}