ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GO 가변인자
    @ 17. 1 ~ 18/Go 랭 2020. 7. 4. 23:17

    Go언어는 값을 넘기기 때문에 그 값들을 슬라이스에 담아서 넘기면 되지 않을까요

    func f(w io.Writer, nums []int){
    
    }
    
    func main(){
    
    ...
    f(w, []int{x,y,z})
    
    }
    
    
    //아래 처럼 가변인자로 한다면
    func WriteTo(w io.Writer, lines... string) (n int64, err error){
    }
    
    //이와 같이 lines를 가변인자로 변경하여도 lines는 슬라이스가 됩니다
    //호출할때 원래는 슬라이스를 넘겨주어야 했겠지만 이제는 나열하는 것만으로도 가능하다
    
    //WriteTo(w, "hello", "world", "Go")
    
    //그럼 이미 슬라이스로 갖고 있는 자료라면?
    //그냥 슬라이스 하나를 넘기면 그 슬라이스 하나를 담고 있는 슬라이스로 만들어서 넘겨줄 것이기
    //때문에 우리가 원하는 대로 되지 않습니다
    
    //호출시에 점 셋을 붙이면 슬라이스를 넘길 수 있습니다
    lines := []string{"hello", "world"}
    WriteTo(w, lines...)

     

     

    '@ 17. 1 ~ 18 > Go 랭' 카테고리의 다른 글

    GO RWMutex vs Mutex  (0) 2020.07.16
    GO 문법 정리(진행형)  (0) 2020.07.07
    Go 슬라이스  (0) 2020.07.04
Designed by Tistory.