in tools/go-agent/tools/enhancement.go [138:163]
func newParameterInfo(name string, tp dst.Expr) *ParameterInfo {
result := &ParameterInfo{
Name: name,
Type: tp,
TypeName: GenerateTypeNameByExp(tp),
}
var defaultNil = "nil"
switch n := tp.(type) {
case *dst.Ident:
if n.Name == "string" {
defaultNil = `""`
} else if n.Name == "bool" {
defaultNil = "false"
} else if strings.HasPrefix(n.Name, "int") || strings.HasPrefix(n.Name, "uint") ||
strings.HasPrefix(n.Name, "float") || n.Name == "byte" || n.Name == "rune" {
defaultNil = "0"
}
case *dst.UnaryExpr:
if n.Op == token.INT || n.Op == token.FLOAT {
defaultNil = "0"
}
}
result.DefaultValueAsString = defaultNil
return result
}