Menu
CoddyTech

Ôn tập: xử lý sự cố

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 109 trên 109.

challenge icon

Thử thách

Dễ

Hãy luyện tập cách xử lý lỗi trong Go với một chương trình chuyển đổi nhiệt độ đơn giản.

Nhiệm vụ của bạn là triển khai một hàm (function) chuyển đổi nhiệt độ từ Celsius sang Fahrenheit, kèm theo cách xử lý lỗi phù hợp.

Hoàn thành hàm celsiusToFahrenheit, hàm này:

  • Chuyển đổi nhiệt độ Celsius sang Fahrenheit bằng công thức: F = C × 9/5 + 32
  • Trả về lỗi nếu nhiệt độ thấp hơn độ không tuyệt đối (-273.15°C)

Với thông báo lỗi, bạn phải trả về chính xác: "Error: temperature below absolute zero"

Hàm main có các test case để kiểm tra phần triển khai của bạn.

Tự làm thử

package main

import (
	"errors"
	"fmt"
)

// celsiusToFahrenheit chuyển đổi từ độ C sang độ F
// Trả về lỗi nếu nhiệt độ thấp hơn độ không tuyệt đối (-273.15°C)
func celsiusToFahrenheit(celsius float64) (float64, error) {
	// TODO: Triển khai logic chuyển đổi
	// 1. Kiểm tra xem nhiệt độ có thấp hơn độ không tuyệt đối (-273.15°C) không
	// 2. Nếu hợp lệ, chuyển đổi theo công thức: F = C × 9/5 + 32
	// 3. Trả về giá trị và lỗi phù hợp
	return 0, nil
}

func main() {
	// Kiểm tra nhiệt độ hợp lệ
	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)
	}

	// Kiểm tra một nhiệt độ hợp lệ khác
	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)
	}

	// Kiểm tra nhiệt độ không hợp lệ (thấp hơn độ không tuyệt đối)
	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)
	}
}

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online