2017-01-12 1 views
0

나는 드라이버 구조체로 JSON 파일을 읽을 수있는이 기능이? [] 인터페이스 {}를 사용하지 않고 시도해 보았습니다. 일반화 golang

는 함수의 서명이 제네릭 확인하고 인수로 슬라이스를 전달하는 당신에게

+0

Driver, Pilot, drivers.json, whatever_pilots_is.json의 정의는 무엇입니까? –

답변

0

변경을 감사드립니다. 다음은 작동해야합니다 :

func getDriversOrPilots(file string, slice interface{}) { 
    raw, err := ioutil.ReadFile(file) 
    if err != nil { 
     fmt.Println(err.Error()) 
     os.Exit(1) 
    } 

    json.Unmarshal(raw, slice) 
} 

func getDrivers() []Driver { 
    var d []Driver 
    getDriversOrPilots("/home/ubuntu/drivers.json", &d) 
    return d 
} 

func getPilots() []Pilot { 
    var p []Pilot 
    getDriversOrPilots("/home/ubuntu/pilots.json", &p) 
    return p 
} 
+1

getDriversOrPilots()에서 반환 유형을 제거하는 것을 잊었습니다. – neclepsio

+0

@neclepsio 지적 해 주셔서 감사합니다! –