2016-04-27 10 views
0

私はgoプログラムを実行するコマンドとして以下を与えます。ゴランの引数処理

は何これが行うことになっていることは私の主な機能のこの部分は3005

にサーバポート3001上で私の行くのREST APIを実行して、ある実行app.go 3001から3005

を行きますこの引数を扱う。

func main() { 
ipfile := os.Args[1:] 
s := strings.Split(ipfile, "-") 
mux := routes.New() 
mux.Put("/:key1/:value1", PutData) 
mux.Get("/profile/:key1", GetSingleData) 
mux.Get("/profile", GetData) 
http.Handle("/", mix) 

ここでは、forループを実行し、最初の引数をs [i]に置き換えます。

http.ListenAndServe(":3000", nil) 
} 

私は次のような出力が得られます。os.argsは

cannot use ipfile (type []string) as type string in argument to strings.Split 

何のデータ型を返すのですか? 文字列に変換して分割しようとしました。動作しません。 何が間違っているか教えてください。

+0

:: 'http.ListenAndServe'をブロックしているので、あなたは、独自のゴルーチンで各リスナーをオフに解雇しなければならない(例えば、'の一部としてos.Argsは十分な要素、使用を持っていることを確認した後

sync.WaitGroup')異なるポートに3つの同時リスナーを設定する場合 – elithrar

+0

このコンテキストでsync.Waitgroupを使用する方法を教えてください。 – RJP

答えて

3

エラーのように、ipfile[]stringです。 [1:]スライス操作は、要素が1つしかない場合でもスライスを返します。また

ipfile := os.Args[1] 
s := strings.Split(ipfile, "-") 
+0

ありがとうございます。私が持っていたエラーは、ipfileの1の後に余分な ':'がありました:= os.Args [1] – RJP

関連する問題