gpt4 book ai didi

swift - 在枚举中使用初始化程序并分配给自己

转载 作者:可可西里 更新时间:2023-11-01 01:32:15 24 4
gpt4 key购买 nike

我的代码:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com