다음을 통해 공유


가치들

F#의 값은 특정 형식의 수량입니다. 값은 정수 또는 부동 소수점 숫자, 문자 또는 텍스트, 목록, 시퀀스, 배열, 튜플, 구분된 공용 구조체, 레코드, 클래스 형식 또는 함수 값일 수 있습니다.

값 바인딩

바인딩이라는 용어는 이름을 정의와 연결한다는 의미입니다. 키워드는 let 다음 예제와 같이 값을 바인딩합니다.

let a = 1
let b = 100u
let str = "text"

// A function value binding.

let f x = x + 1

값의 형식은 정의에서 유추됩니다. 정수 또는 부동 소수점 숫자와 같은 기본 형식의 경우 형식은 리터럴 형식에서 결정됩니다. 따라서 이전 예제에서 컴파일러는 형식을 유추 bunsigned int하는 반면 컴파일러는 형식을 유추합니다 aint. 함수 값의 형식은 함수 본문의 반환 값에서 결정됩니다. 함수 값 형식에 대한 자세한 내용은 Functions를 참조하세요. 리터럴 형식에 대한 자세한 내용은 리터럴을 참조하세요.

컴파일러는 기본적으로 사용되지 않는 바인딩에 대한 진단을 실행하지 않습니다. 이러한 메시지를 받으려면 프로젝트 파일에서 또는 컴파일러를 호출할 때 경고 1182를 사용하도록 설정합니다(컴파일러 옵션 참조--warnon).

변경할 수 없는 이유

변경할 수 없는 값은 프로그램 실행 과정에서 변경할 수 없는 값입니다. C++, Visual Basic 또는 C#과 같은 언어에 익숙한 경우 F#이 프로그램을 실행하는 동안 새 값을 할당할 수 있는 변수가 아니라 변경할 수 없는 값보다 우선권을 두는 것은 놀라운 일입니다. 변경할 수 없는 데이터는 기능 프로그래밍의 중요한 요소입니다. 다중 스레드 환경에서는 여러 스레드에서 변경할 수 있는 공유 변경 가능한 변수를 관리하기가 어렵습니다. 또한 변경 가능한 변수를 사용하면 변수가 다른 함수로 전달될 때 변경될 수 있는지 확인하기 어려울 수 있습니다.

순수 함수 언어에는 변수가 없으며 함수는 수학 함수로 엄격하게 동작합니다. 절차 언어의 코드가 변수 할당을 사용하여 값을 변경하는 경우 함수 언어의 해당 코드에는 입력, 변경할 수 없는 함수 및 다른 변경할 수 없는 값이 출력으로 변경될 수 없는 값이 있습니다. 이러한 수학적 엄격성을 통해 프로그램의 동작에 대해 더 엄격한 추론을 할 수 있습니다. 이 보다 엄격한 추론을 통해 컴파일러는 코드를 보다 엄격하게 확인하고 보다 효과적으로 최적화할 수 있으며 개발자가 올바른 코드를 더 쉽게 이해하고 작성할 수 있습니다. 따라서 함수 코드는 일반 절차 코드보다 디버그하기 쉬울 수 있습니다.

F#은 순수 함수 언어가 아니지만 기능 프로그래밍을 완벽하게 지원합니다. 변경할 수 없는 값을 사용하면 코드가 기능 프로그래밍의 중요한 측면을 활용할 수 있기 때문에 좋은 방법입니다.

변경 가능한 변수

키워드 mutable 를 사용하여 변경할 수 있는 변수를 지정할 수 있습니다. F#의 변경 가능한 변수는 일반적으로 형식의 필드 또는 로컬 값으로 제한된 범위를 가져야 합니다. 범위가 제한된 변경 가능한 변수는 제어하기 쉽고 잘못된 방법으로 수정될 가능성이 적습니다.

값을 정의하는 것과 동일한 방식으로 키워드를 사용하여 let 변경 가능한 변수에 초기 값을 할당할 수 있습니다. 그러나 차이점은 다음 예제와 같이 연산자를 사용하여 <- 변경 가능한 변수에 새 값을 할당할 수 있다는 것입니다.

let mutable x = 1
x <- x + 1

표시된 mutable 값은 작성기 등의 seq 닫기를 'a ref 만드는 양식을 포함하여 클로저에 의해 캡처되는 경우 자동으로 승격될 수 있습니다. 이 경우 알림을 받으려면 프로젝트 파일에서 또는 컴파일러를 호출할 때 경고 3180을 사용하도록 설정합니다.

제목 설명
let Bindings 키워드를 let 사용하여 이름을 값 및 함수에 바인딩하는 방법에 대한 정보를 제공합니다.
함수 F#의 함수 개요를 제공합니다.

참고하십시오