Этот коммит содержится в:
Igor V Belousov 2022-01-11 22:58:15 +03:00
родитель 3b5a573101
Коммит 3a763d60d5
3 изменённых файлов: 63 добавлений и 0 удалений

17
ch2/ch26.go Обычный файл
Просмотреть файл

@ -0,0 +1,17 @@
package main
import (
"fmt"
"mygit.i2g.ru/biv/LearnGoDonovan/ch2/tempconv"
)
func main() {
fmt.Printf("Брррр! %v\n", tempconv.AbsoluteZeroC) // Брррр! -273.15°C
fmt.Println(tempconv.CToF(tempconv.BoilingC)) // 212°F
fmt.Println(tempconv.FToK(0.0))
fmt.Println(tempconv.CToK(tempconv.FreezingC))
fmt.Println(tempconv.FToC(-50))
fmt.Println(tempconv.KToC(0))
fmt.Println(tempconv.KToF(505.92789))
}

19
ch2/tempconv/conv.go Обычный файл
Просмотреть файл

@ -0,0 +1,19 @@
package tempconv
// CToF преобразует температуру по Цельсию в температуру по Фаренгейту.
func CToF(c Celsius) Fahrenheit { return Fahrenheit(c*9/5 + 32) }
// CToK преобразует температуру по Цельсию в температуру по Кельвину.
func CToK(c Celsius) Kelvin { return Kelvin(c + 273.15) }
// FToC преобразует температуру по Фаренгейту в температуру по Цельсию.
func FToC(f Fahrenheit) Celsius { return Celsius((f - 32) * 5 / 9) }
// FToK преобразует температуру по Фаренгейту в температуру по Кельвину.
func FToK(f Fahrenheit) Kelvin { return Kelvin((f + 459.67) * 5 / 9) }
// KToC преобразует температуру по Кельвину в температуру по Цельсию.
func KToC(k Kelvin) Celsius { return Celsius(k - 273.15) }
// KToF преобразует температуру по Кельвину в температуру по Фаренгейту.
func KToF(k Kelvin) Fahrenheit { return Fahrenheit(k*9/5 - 459.67) }

27
ch2/tempconv/tempconv.go Обычный файл
Просмотреть файл

@ -0,0 +1,27 @@
// Пакет tempconv выполняет преобразование температур.
package tempconv
import "fmt"
type Celsius float64
type Fahrenheit float64
type Kelvin float64
// Константы температур по Цельсию
const (
AbsoluteZeroC Celsius = -273.15 // Абсолютный нуль
FreezingC Celsius = 0 // Температура замерзания воды
BoilingC Celsius = 100 // Точка кипения воды
)
func (c Celsius) String() string {
return fmt.Sprintf("%g°C", c)
}
func (f Fahrenheit) String() string {
return fmt.Sprintf("%g°F", f)
}
func (k Kelvin) String() string {
return fmt.Sprintf("%g°K", k)
}