1. _, file, _, _ := runtime.Caller(0)
    2. fmt.Println(file) // /home/qinyi/goProjectModule/p2/main.go
    3. baseFileName := path.Base(file)
    4. fmt.Println(baseFileName) // main.go
    5. fileExt := path.Ext(file)
    6. fmt.Println(fileExt) // .go
    7. fileDir := path.Dir(file)
    8. fmt.Println(fileDir) // /home/qinyi/goProjectModule/p2
    9. fmt.Println(path.Dir(fileDir)) // /home/qinyi/goProjectModule
    10. fileName := strings.TrimSuffix(baseFileName, fileExt)
    11. fmt.Println(fileName) // main