[Discovery-Go] 4장 함수

soohee·2021년 9월 19일
0

Go

목록 보기
1/1
  • 코드의 덩어리를 추상화한 것이 서브 루틴이다.
  • 함수에 값을 넘겨주고 받을 수 있다.
  • 포인터를 넘겨받으면 넘겨준 루틴의 변수의 값을 변경할 수 있다.
  • 함수에서 받는 값은 여럿일 수 있고 받는 쪽에서는 밑줄로 일부 값을 무시할 수 있다.
  • 에러는 관례상 마지막 값으로 돌려준다.
  • 가변 인자를 사용할 때에는 점 세개를 이용하며, 슬라이스에 점 세개를 이용하여 가변 인자처럼 넘겨줄 수 있다.
  • 함수의 이름 부분을 삭제하면 익명 함수가 되어 함수 리터럴이 된다.
  • 함수 리터럴은 값으로 취급되므로 변수에 담을 수 있고, 함수로 넘겨주고 넘겨받을 수 있습니다. 자료형에도 함수를 담을 수 있다.
  • 클로저는 함수 리터럴이 있는 스코프 내의 변수들에 접근할 수 있다.
  • 클로저를 이용하면 생성기 및 반복자를 만들 수 있다.
  • 클로저를 이용하면 인자 고정을 할 수 있다.
  • 자료형에 이름을 붙이면 명명된 자료형으로 구분하여 자료형 검사를 할 수 있다. 아울러 명명된 자료형에는 메서드도 정의할 수 있다.
  • 함수도 자료이므로 함수형도 이름을 붙일 수 있다.
  • 함수를 넘기고 받는 것을 활용하면 더 깊은 패턴의 추상화가 가능하다.
  • 명명된 자료형에는 메서드를 정의할 수 있다.
  • 메서드의 리시버는 값 또는 포인터를 사용할 수 있다. 포인터로 넘겨받아야 하는 경우에 포인터 리시버를 사용하면 된다.
  • 패키지에 정의된 식별자 중에서 첫 글자가 대문자로 시작하는 것만 외부에서 접근할 수 있다.
    메서드도 예외는 아니어서 이를 이용하면 공개/비공개 메서드 관리가 가능하다.
profile
🐻‍❄️

0개의 댓글