Menu
Coddy logo textTech

まとめ:問題への対処

CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 109/109。

challenge icon

チャレンジ

簡単

シンプルな温度変換プログラムを使って、Go言語でのエラーハンドリングを練習しましょう。

あなたのタスクは、適切なエラーハンドリングを備えた、摂氏(Celsius)から華氏(Fahrenheit)に温度を変換する関数を実装することです。

以下の仕様で 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)
	}
}

基礎のすべてのレッスン