mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-10 08:23:42 +00:00
28 lines
615 B
Go
28 lines
615 B
Go
|
// Copyright © 2016 Alan A. A. Donovan & Brian W. Kernighan.
|
||
|
// License: https://creativecommons.org/licenses/by-nc-sa/4.0/
|
||
|
|
||
|
// See page 39.
|
||
|
//!+
|
||
|
|
||
|
// Package tempconv performs Celsius and Fahrenheit temperature computations.
|
||
|
package tempconv
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
type Celsius float64
|
||
|
type Fahrenheit float64
|
||
|
|
||
|
const (
|
||
|
AbsoluteZeroC Celsius = -273.15
|
||
|
FreezingC Celsius = 0
|
||
|
BoilingC Celsius = 100
|
||
|
)
|
||
|
|
||
|
func CToF(c Celsius) Fahrenheit { return Fahrenheit(c*9/5 + 32) }
|
||
|
|
||
|
func FToC(f Fahrenheit) Celsius { return Celsius((f - 32) * 5 / 9) }
|
||
|
|
||
|
//!-
|
||
|
|
||
|
func (c Celsius) String() string { return fmt.Sprintf("%g°C", c) }
|