初级会员
  • 第 20677 位会员
  • haoyupei
  • 2018-07-23 16:44:39
  • 212
  • Offline
  • 49 31

最近发布的主题

    暂无

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • package bufio
  • 评论了主题 关于切片的一个问题
    初始化的方式吧,基于索引方式负值,便于阅读,
  • 不清不楚
  • 增加一个case func()分支就可以,放在interface分支上面 ```go package main import ( "fmt" ) var fi interface{} func main() { fi = func() { fmt.Println("jjjjj") } //直接调用 fi.(func())() switch f := fi.(type) { case bool: fmt.Println("func", f) case func(): f() case interface{}: fmt.Println("interface", f) default: fmt.Printf("unknown:%#v\n", f) } } ```
  • 因为命令没有正确识别,所以out读取不到内容 使用 cmd.Start()的可以通过返回值来查看 命令是否可以执行,之后的流程就对了 ```go package main import ( "fmt" "io" _ "io/ioutil" "os" "os/exec" "bytes" ) func main() { cmd_os := "" if "windows" == os.Getenv("GOOS") { cmd_os = "dir" }else{ cmd_os = "ls" } cmd := exec.Command(cmd_os) out ,err := cmd.StdoutPipe() if err!=nil{ fmt.Println(err) } var errbuf bytes.Buffer cmd.Stderr = &errbuf err = cmd.Start() if err!=nil{ io.Copy(cmd.Stderr,bytes.NewBufferString(err.Error())) //fmt.Println(err) } //cont,err:= ioutil.ReadAll(out) _,err = io.Copy(os.Stdout,out) if err!=nil{ //fmt.Println(err) } //io.Copy(os.Stdout,out) cmd.Wait() // fmt.Println(bytes.NewBuffer(cont).String()) fmt.Println(errbuf.String()) //io.Copy(os.Stdout,cmd.Stderr) //io.Copy(os.Stdout,os.Stdin) //fmt.Println(os.Args[1]) } ```