回顾:处理问题
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 109 课,共 109 课。
挑战
简单让我们通过一个简单的温度转换程序来练习 Go 中的错误处理。
你的任务是实现一个函数,将温度从摄氏度转换为华氏度,并正确处理错误。
完成 celsiusToFahrenheit 函数,使其能够:
- 使用公式将摄氏温度转换为华氏温度:F = C × 9/5 + 32
- 如果温度低于绝对零度(-273.15°C),则返回错误
对于错误消息,你必须准确返回:"Error: temperature below absolute zero"
main 函数中包含用于验证你实现的测试用例。
亲手试试
package main
import (
"errors"
"fmt"
)
// celsiusToFahrenheit 将摄氏温度转换为华氏温度
// 如果温度低于绝对零度(-273.15°C),则返回错误
func celsiusToFahrenheit(celsius float64) (float64, error) {
// TODO:实现转换逻辑
// 1. 检查温度是否低于绝对零度(-273.15°C)
// 2. 如果温度有效,使用公式 F = C × 9/5 + 32 进行转换
// 3. 返回相应的值和错误
return 0, nil
}
func main() {
// 测试有效温度
fmt.Println("Converting 25°C to Fahrenheit:")
fahrenheit, err := celsiusToFahrenheit(25)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("25°C = %.2f°F\n", fahrenheit)
}
// 测试另一个有效温度
fmt.Println("\nConverting 0°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(0)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("0°C = %.2f°F\n", fahrenheit)
}
// 测试无效温度(低于绝对零度)
fmt.Println("\nConverting -300°C to Fahrenheit:")
fahrenheit, err = celsiusToFahrenheit(-300)
if err != nil {
fmt.Println(err)
} else {
fmt.Printf("-300°C = %.2f°F\n", fahrenheit)
}
}基础知识中的所有课
自己练习: Go 在线编译器