Chapter 2 - tempconv package
Этот коммит содержится в:
родитель
3b5a573101
Коммит
3a763d60d5
17
ch2/ch26.go
Обычный файл
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
Обычный файл
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
Обычный файл
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)
|
||||||
|
}
|
Загрузка…
Ссылка в новой задаче
Block a user