まとめ:問題への対処
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 109/109。
チャレンジ
簡単シンプルな温度変換プログラムを使って、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)
}
}基礎のすべてのレッスン
11複合型:スライス
スライス入門スライスリテラルの宣言`make` によるスライスの作成スライスの長さと容量スライス要素へのアクセス要素の追加既存のスライス/配列のスライススライスの反復処理スライスのコピーまとめ:動的リスト14エラーハンドリングの基本
エラーの概念`error` インターフェースエラーを返す関数エラーのチェックシンプルなエラーの作成フォーマット済みエラーの作成基本的なエラーハンドリングまとめ:問題への対処