参考ページ2
test_exec.go
//コピーアンドペーストの産物
package main
import (
"fmt"
"exec"
"io/ioutil"
)
func main() {
//序盤の2つ以外はおまじない?
cmd, err := exec.Run("/bin/ls", []string{"ls", "/"}, nil, "", exec.Pipe, exec.Pipe, exec.DevNull)
//例外処理?
if err != nil {
fmt.Printf("ERROR EXECUTING COMMAND: %d\n", err)
os.Exit(1)
}
//cmd構造体の中にStdin, Stdoutはあったからexec.Runを実行すると
//なんか色々起こって、これが可能になるんだと思う。
cmd.Stdin.Close();
buff, err := ioutil.ReadAll(cmd.Stdout)
if err != nil {
fmt.Printf("ERROR READING OUTPUT: %d\n", err)
os.Exit(1)
} else { //改行するとエラーが出る
fmt.Printf("COMMAND RESULT: %s\n", buff)
}
}そんなに沢山の言語を使ったことないからわからないけど、凄いクセのある書き方をする言語だと感じた。if文の書き方まで厳密に決まってるし。将来的にC#みたいに言語仕様がどんどん変わってJavaとかに近づいて行くのか?今のスタンスを維持して独自路線を突き進むのか?
個人的にはGoogleには後者であって欲しい。
0 件のコメント:
コメントを投稿