Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 716 Bytes

File metadata and controls

27 lines (19 loc) · 716 Bytes
package main

import "fmt"

type Celsius float64

func (Celsius) String() string {
	return "C"
}

type Fahrenheit float64

func (*Fahrenheit) String() string {
	return "F"
}

func main() {
	var _ fmt.Stringer = (*Celsius)(nil)
	var _ fmt.Stringer = (*Fahrenheit)(nil) // компиляция проходит

	var _ fmt.Stringer = Celsius(20.0)
	// var _ fmt.Stringer = Fahrenheit(20.0) // компиляция не проходит
}

Методы, определенные для типа T, также доступны для указателей этого типа (*T). Однако обратное не верно: методы, определенные для *T, не доступны для T.