main() { clientType := reflect.TypeOf(s3.New(s3.Options{})) for i := 0; i < clientType.NumMethod(); i++ { method := clientType.Method(i) fmt.Println("Function Name:", method.Name) fmt.Println("Function Type:", method.Type) // メソッドのパラメータとリターンタイプを抽出 params := make([]string, 0) for j := 0; j < method.Type.NumIn(); j++ { params = append(params, method.Type.In(j).Name()) } returns := make([]string, 0) for k := 0; k < method.Type.NumOut(); k++ { returns = append(returns, method.Type.Out(k).Name()) } fmt.Println("Parameters:", strings.Join(params, ", ")) fmt.Println("Returns:", strings.Join(returns, ", ")) fmt.Println() } }