OSX 10.10.2-cmd启动未定义显示

How to fix it? (OSX 10.10.2, go version go1.4.2 darwin/amd64)

Error:

cmd.Start undefined (type string has no field or method Start)

Code:

  myos := runtime.GOOS;
  myarch := runtime.GOARCH;
  const url = "http://localhsot:9090"
  if myarch == "386" {
      cmd := exec.Command("open", "-b" , "com.google.Chrome", "--args", "--chrome-frame", "--kiosk", url);
    } else {
      cmd := exec.Command("open", "-b" , "com.google.Chrome", "--args", "--chrome-frame", "--kiosk", url);
    }
    err := cmd.Start();
    if err != nil {
      fmt.Println("failed");
    } 

If your cmd variable is shadowing a cmd parameter in an enclosing function (not visible in the OP's question), then the cmd := exec.Command would declare a new cmd (short variable declaration form) which wouldn't be visible outside of the if/else scope.

The OP YumYumYum confirms in the comments:

I had this: func main() { cmd := "";

This is a short variable declaration associating the type string to cmd.
That wouldn't work well with exec.Command() *exec.Cmd, which returns a *exec.Cmd.

If would be better to declare a var cmdopen *exec.Cmd (different name, just to be on the safe side) and instantiates it, in order to be sure that the cmdopen is from the expected type *exec.Cmd.

var cmdopen *exec.Cmd
if myarch == "386" {
    cmdopen = exec.Command("open", "-b", "com.google.Chrome", "--args", "--chrome-frame", "--kiosk", url)
} else {
    cmdopen = exec.Command("open", "-b", "com.google.Chrome", "--args", "--chrome-frame", "--kiosk", url)
}
err := cmdopen.Start()

(note the use of '=' instead of ':=' in cmdopen = exec.Command)