Menu
CoddyTech

回顾:处理问题

本课属于 Coddy GO 学习旅程的“基础知识”单元。第 109 课,共 109 课。

challenge icon

挑战

简单

让我们通过一个简单的温度转换程序来练习 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 在线编译器