F# 멤버
F# 멤버 (Members)
F# 객체 형식에 속하는 멤버가 무엇인지, 그리고 member 키워드로 어떤 것들을 선언할 수 있는지 개괄적으로 살펴보는 문서예요. 뒤의 "더 알아보기" 링크를 따라가면 각 멤버 종류를 하나씩 자세히 다뤄요.
출처: Members – Microsoft Learn (원문)
본문
이 문서는 F# 객체 형식의 멤버에 대해 설명해요.
멤버는 형식 정의의 일부를 이루는 기능으로, member 키워드로 선언해요. 레코드, 클래스, 판별 공용체, 인터페이스, 구조체 같은 F# 객체 형식이 모두 멤버를 지원해요. 자세한 내용은 Records, Classes, Discriminated Unions, Interfaces, Structs 문서를 참고하세요.
멤버는 보통 그 형식의 외부 공개 인터페이스를 구성해요. 그래서 특별히 지정하지 않는 한 기본으로 public이 되죠. 물론 멤버를 private나 internal로 선언할 수도 있어요. 이 부분은 Access Control 문서에 자세히 나와 있어요. 그리고 시그니처 파일을 활용해 특정 멤버를 외부에 노출하거나 감추는 방법도 있어요. 그건 Signatures 문서에서 다뤄요.
한 가지 짚고 넘어갈 점이 있어요. 클래스에서만 쓰는 private 필드와 do 바인딩은 진짜 멤버는 아니에요. 언제나 형식의 외부 공개 인터페이스에서 빠져 있고, member 키워드로 선언되지도 않으니까요. 다만 이 문서에서 함께 설명하고 있어요.
더 알아보기
| 주제 | 설명 |
|---|---|
| let Bindings in Classes | 클래스에서 private 필드와 함수를 정의하는 방법 |
| do Bindings in Classes | 객체 초기화 코드를 지정하는 방법 |
| Properties | 클래스와 다른 형식의 프로퍼티 멤버 |
| Indexed Properties | 클래스와 다른 형식의 배열처럼 동작하는 프로퍼티 |
| Methods | 형식의 멤버인 함수 |
| Constructors | 형식의 객체를 초기화하는 특수 함수 |
| Operator Overloading | 형식에 사용자 지정 연산자를 정의하는 방법 |
| Events | F#에서 이벤트 정의와 이벤트 처리 지원 |
| Structs | F#에서 구조체를 정의하는 방법 |
| Explicit Fields | 형식에서 초기화되지 않은 필드를 정의하는 방법 |