用仓颉语言设计函数输入月份值,并返回月份的天数,如果输入的月份值小于1或大于12,则通过option类型返回空值
,有人会写嘛(一个完整的代码)
用仓颉语言设计函数输入月份值,并返回月份的天数,如果输入的月份值小于1或大于12,则通过option类型返回空值
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
檀越@新空间 2026-03-17 20:48关注晚上好🌙🌙🌙
本答案参考通义千问当然可以!下面是一个完整的仓颉语言(Cangjie)代码示例,用于设计一个函数:输入月份值,并返回该月份的天数。如果输入的月份值小于1或大于12,则通过 Option 类型 返回空值。
✅ 功能说明
- 函数名称:
getMonthDays - 输入参数:
month: Int - 返回类型:
Option<Int> - 逻辑:
- 如果
month在 [1, 12] 范围内,返回对应的天数。 - 否则,返回
None(即 Option 的空值)。
- 如果
🧠 解决方案步骤:
- 定义一个函数
getMonthDays(month: Int): Option<Int>。 - 使用
if条件判断月份是否合法。 - 如果合法,根据月份返回对应的天数。
- 如果不合法,返回
None。 - 可以添加测试用例验证函数行为。
📜 完整代码如下:
// 定义函数 getMonthDays,接收一个 Int 类型的 month 参数,返回 Option<Int> func getMonthDays(month: Int): Option<Int> { // 判断月份是否在有效范围内 if month >= 1 && month <= 12 { // 根据月份返回对应的天数 switch month { case 1: return Some(31) case 2: return Some(28) // 不考虑闰年 case 3: return Some(31) case 4: return Some(30) case 5: return Some(31) case 6: return Some(30) case 7: return Some(31) case 8: return Some(31) case 9: return Some(30) case 10: return Some(31) case 11: return Some(30) case 12: return Some(31) default: return None } } else { return None } } // 测试用例 func main() { let result1 = getMonthDays(2) let result2 = getMonthDays(13) let result3 = getMonthDays(0) // 输出结果 print("February has " + (result1.getOrElse(0)).toString() + " days.") print("Invalid month has " + (result2.getOrElse(0)).toString() + " days.") print("Invalid month has " + (result3.getOrElse(0)).toString() + " days.") }
🔍 代码说明:
Some(value):表示有值,相当于Option<T>.Some(value)None:表示没有值,相当于Option<T>.NonegetOrElse(defaultValue):从 Option 中获取值,若为None,则返回默认值
📌 示例输出:
假设运行上述
main()函数,输出可能为:February has 28 days. Invalid month has 0 days. Invalid month has 0 days.
✅ 总结:
- 函数功能清晰:输入月份,返回天数或
None - 使用 Option 类型:避免了空指针异常
- 支持多种情况:包括合法月份和非法月份
如果你需要扩展功能,例如处理闰年,也可以告诉我,我可以继续优化这个函数。
解决 无用评论 打赏 举报- 函数名称: