package main
import (
"fmt"
"reflect"
)
type integer int
func (i integer) String()string {
return "hello"
}
func main() {
//type integer int
aa:= integer(5)
cc := aa + 11
fmt.Println(cc)
dd := int(aa) +1
fmt.Println(dd)
var ee integer
ee = integer(6)
fmt.Println(ee)
fmt.Println(reflect.TypeOf(aa))
fmt.Println(reflect.ValueOf(aa))
fmt.Println(aa)
//
//go func() {
// go func() {
// time.Sleep(5 * time.Second)
// fmt.Println("3")
// }()
// time.Sleep(3 * time.Second)
// fmt.Println("2")
//}()
//time.Sleep(10 * time.Second)
//fmt.Println("1")
}
ps:
自定义类型实现了Stringer interface
所以使用的时候会使用自定义类型的String方法,String方法可以针对自身操作,比如格式化某个属性等,比如下图
package main
import (
"fmt"
)
type integer int
func (i integer) String()string {
return "hello"
}
type structString struct {
name string
sex string
}
func (i structString) String()string {
return i.name + "-" + i.sex
}
func main() {
//type integer int
aa:= integer(5)
cc := aa + 11
fmt.Println(cc)
dd := int(aa) +1
fmt.Println(dd)
var ee integer
ee = integer(6)
fmt.Println(ee)
structString:=&structString{
name: "wq",
sex: "男",
}
structString02 :=structString
fmt.Println(structString02)
}