- 类型声明
可以使用type
声明定义一个新的命名类型,命名类型提供了一种方式来区别底层类型的不同或者不兼容使用,这样他们就不会在无意中混用
type name underlying-type
package main
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) StringMethodSelf() string{
return fmt.Sprintf("%g˚C",c)
}
func main() {
fmt.Printf("%g\n", BoilingC-FreezingC)
boilingf := CToF(BoilingC)
fmt.Printf("%g\n", boilingf-CToF(FreezingC))
var c Celsius
var f Fahrenheit
println(c == 0)
println(f >= 0)
println(c == Celsius(f))
b :=FToC(212.0)
fmt.Println(b.StringMethodSelf())
}