Menu
Coddy logo textTech

Итоги — решение проблем

Часть раздела Основы путешествия по GO на Coddy — урок 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)
	}
}

Все уроки раздела Основы