2012-06-17 4 views
0

이 프로그램 반환 :플래그에서 (* int) 대신 (int)를 어떻게 반환합니까?

package main 

import (
    "flag" 
    "fmt" 
) 

func main() { 
    num_agents := flag.Int("a", 10, "number of agents") 
    flag.Parse(); 

    fmt.Printf("%#v",num_agents) 
} 

출력

그게 내가 내가 원하는 것은 정수입니다 ... 원하는 것이 아니다 그러나
(*int)(0x18600110)` 

.

그래서 내가 1이해야 할 때 코드의 2 개 라인을 작성해야하기 때문에

package main 

import (
    "flag" 
    "fmt" 
) 

func main() { 
    var num_agents int 
    flag.IntVar(&num_agents,"a", 10, "number of agents") 
    flag.Parse(); 

    fmt.Printf("%#v",num_agents) 
} 

그러나 그 ... 잘하지 않는 것 flag.IntVar (& pointer_to_variable_integer)를 사용한다 보인다 문서에 따라 . 어떻게 든

num_agents := flags.Int("a", 10, "number of agents") 

이 *은 int 대신 int를 반환해야 함을 날 것으로 보인다.? 또는 * int에서 int로 캐스팅하는 쉬운 방법이 있습니까 ??

답변

2

단순히 포인터 역 참조 :

num_agents := flags.Int("a", 10, "number of agents") 
fmt.Println(*num_agents) 
+0

엡 감사 : http://stackoverflow.com/questions/11075408/type-conversion -from-type-int-to-type-int/11075463 # 11075463 나는 무슨 일이 일어나고 있는지 이해하기 시작했습니다 :-) 감사합니다. – elviejo79

1

는 또한 시도 할 수 있습니다 :

var num_agents int 

func init() { 
    flag.IntVar(&num_agents, "a", 10, "number of agents") 
} 
내가 게시 된 다른 질문에
관련 문제