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