github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/develop/dev14/main.go (about)

     1  package main
     2  
     3  import "fmt"
     4  
     5  /*
     6  Разработать программу, которая в рантайме способна определить тип переменной: int, string, bool, channel из переменной типа interface{}.
     7  */
     8  type Type interface {
     9  }
    10  
    11  func main() {
    12  	var t Type
    13  
    14  	t = 0
    15  	fmt.Println(getType(t))
    16  
    17  	t = "abc"
    18  	fmt.Println(getType(t))
    19  
    20  	t = true
    21  	fmt.Println(getType(t))
    22  
    23  	t = make(chan int)
    24  	fmt.Println(getType(t))
    25  }
    26  
    27  func getType(t Type) string {
    28  	return fmt.Sprintf("Type is %T", t)
    29  }