作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的代码:
enum Grade: String{
case A, B, C, D, E, F, U, S
init!(_ result: Int){
if result > 100 {
return nil
}
switch result {
case 0:
self = .U
case 1...49:
self = .F
case 0:
self = .U
case 50...59:
self = .E
case 60...69:
self = .D
case 70...79:
self = .C
case 80...89:
self = .B
case 90...99:
self = .A
case 100:
self = .S
default:
break
}
}
}
看起来不错,但我出错了。
错误:在初始化所有存储的属性之前使用了“self”。
我的修复方法是在初始化器中为自己分配一些东西,然后使用 switch。
我想知道有没有更好的解决方案?
谢谢。
最佳答案
你得到那个错误是因为你没有在“默认”情况下定义自己。
要删除错误,请定义另一种情况(例如 .None)并将其置于“默认”。或者您可以创建可失败初始化器(init?),然后在默认情况下将 self 定义为 nil。
关于swift - 在枚举中使用初始化程序并分配给自己,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39145405/
我是一名优秀的程序员,十分优秀!