gpt4 book ai didi

scala - 在 Scala 选项类型 isEmpty 方法中检查 None

转载 作者:行者123 更新时间:2023-12-03 01:53:14 25 4
gpt4 key购买 nike

我正在使用选项类型的 isEmpty 方法来检查是否没有值。我不想在我的情况下使用 case match,我只想检查是否有 None 因为我会抛出错误给来电者。但即使值为 NoneisEmpty 方法也会失败。

这是我尝试过的!

val questionOption = Question.getQuestionForQuestionId(userExam.get.examId, currQuesId + 1)

if(questionOption.isEmpty) {
Left(Failure(FailureCode.NO_DATA_FOUND, "Cannot get next exam question you tampered your cookie or cookie is lost.... >> TODO... modify the exception message"))
}

它没有进入 if 条件。我尝试对 QuestionOption 执行 println,但它打印 None 。所以想知道为什么我没有进入 if 条件。

最佳答案

从问题下的评论中,真正的问题出现了:

 val questionOption = Question.getQuestionForQuestionId(userExam.get.examId, currQuesId + 1) 
if(questionOption.isEmpty) {
Left(Failure(FailureCode.NO_DATA_FOUND, "Cannot get next exam question you tampered your cookie or cookie is lost.... >> TODO... modify the exception message"))
}

就其本身而言,if 返回类型 Unit,因此您的语句不会返回任何有用的内容。如果您想返回某些内容,则需要添加一个 else ,然后返回结果类型的最小上限。因此

 >>> val yo = if(1 != 0) 4
yo: Unit

>>> val ya = if(1 != 0) Left(1) else Right("got it")
ya: Either[Int, String]

关于scala - 在 Scala 选项类型 isEmpty 方法中检查 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843594/

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