변수를 사용하여 값 저장
모든 프로그램은 일반적으로 프로그램이 데이터에 대해 작동하는 여러 단계로 구성됩니다. 이러한 모든 단계를 실행하는 과정의 일부로, 간헐적인 결과인 데이터를 명명된 참조에 저장하는 것이 일반적입니다. 그런 다음 나중에 데이터를 읽거나 조작할 수 있습니다. 명명된 참조를 일반적으로 변수라고 합니다.
변수에 값 바인딩
변수는 코드에서 계속 참조하려는 값에 바인딩된 명명된 참조입니다. F#에서는 값을 바인딩하는 것으로 간주합니다. 따라서 명명된 참조, 변수에 값을 할당하거나 바인딩하는 것입니다. 값을 바인딩하려면 참조 이름 let 인 키워드를 사용하고 아래 코드와 같이 값을 할당합니다.
let name = "Chris"
name 는 명명된 참조이고 바인딩된 값은 "Chris"입니다.
변수에 값을 할당한 후에는 변경할 수 없으며 변경할 수 없습니다. 다음 코드는 컴파일되지 않으며 "오류 FS0027: 이 값은 변경할 수 없습니다."와 같은 오류를 생성합니다.
let name = "Chris"
name <- "Luis" // not allowed
변경 가능으로 만들기
변수를 변경할 수 있지만 변수를 변경할 수 있도록 하려면 신호를 보내야 합니다. 변수 정의에서 키워드 mutable 를 사용하면 다음 코드와 같이 컴파일 오류 없이 값을 변경할 수 있습니다.
let mutable name = "Chris"
name <- "Luis" // this statement is now allowed
변수 유형
F#에는 다양한 형식의 범위가 있습니다. 대부분의 형식은 소수점이 있거나 없는 다양한 크기의 숫자를 저장하는 것과 관련이 있습니다. 다른 형식은 텍스트 문자열 또는 부울 변수와 연결됩니다. 다음은 F#을 배우기 시작할 때 발생할 수 있는 형식 목록입니다.
| 유형 | 설명 |
|---|---|
| bool | 가능한 값은 다음과 같습니다.truefalse |
| 정수 (int) | -2,147,483,648에서 2,147,483,647까지의 값입니다. |
| 문자열 | 유니코드 텍스트 |
| 부동, 이중 | 64비트 부동 소수점 형식입니다. |
형식이 유추됨
변수를 선언할 때 형식을 사용하거나 사용하지 않고 선언할 수 있습니다. 변수를 선언할 때 형식을 제공하지 않으면 F# 컴파일러는 변수에 할당한 값으로 형식이 무엇인지 가장 잘 추측합니다. 다음 문장들을 고려합니다.
let age = 65 // int
let PI = 3.14 // float
let name = "my name" // string
컴파일러는 형식이 무엇인지 유추하고, 맞춥니다. 원하는 유형을 보다 명확하게 지정할 수도 있습니다. 데이터를 할당하려면 다음 코드와 같이 구문을 variableName:<type>사용합니다.
let sum:float = 0.0
화면에 인쇄
화면에 출력할 수 있기를 자주 원합니다. 다음과 같은 다양한 이유가 있을 수 있습니다.
- 애플리케이션 출력: 애플리케이션이 일종의 계산을 수행하고 있으며 출력을 보려고 합니다.
- 디버깅: 코드 디버깅의 일환으로 특정 시점에 결과를 출력하여 무엇이 잘못되었는지 이해해야 할 수 있습니다.
화면에 출력하려는 다른 이유가 있지만 앞의 두 시나리오가 가장 일반적입니다.
그렇다면 화면에 어떻게 인쇄할 수 있을까요? F#에는 세 가지 함수를 사용할 수 있습니다. printf, printfn, Console.WriteLine입니다. 그렇다면 차이점은 무엇일까요?
printf:stdout인라인으로 프린트합니다(줄 바꿈 문자 없음).printfn:stdout에 출력되고 줄 바꿈 문자를 추가합니다.Console.WriteLine: 이 함수는 네임스페이System스에서 사용되며 모든 .NET 언어에서 작동합니다.
이제 차이점을 알고 있지만 어떤 것을 사용해야 하나요? 글쎄, printf 그리고 printfn는 F#에서 더 관용적이고 선호되는 것으로 간주됩니다.
형식 지정
화면에 인쇄하는 과정의 일부로 텍스트와 숫자를 결합할 수 있습니다. 또는 다음과 같은 특정 방식으로 출력의 형식을 지정하려고 할 수 있습니다.
위치 인수: 서식을 지정하려면,
String.Format와 같은 위치 인수를 사용하는String.Format("My name is {0} and I live in {1}", "Chris", "UK")이라는 .NET 함수를 사용할 수 있습니다.문자열 보간: 변수와 텍스트를 결합하는 또 다른 방법은 보간이라는 항목을 사용하는 것입니다. 이를 사용하려면 문자열 앞에 기호를
$추가하고 대괄호가 있는 자리 표시자를 지정해야 합니다{}. 보간 사용의 예는 다음과 같습니다.let name = "Luis" let company = "Microsoft" printfn $"Name: {name}, Company: {company}"다음과 같이 대괄호 사이에 식을 추가할 수도 있습니다.
let firstNumber = 2000 let secondNumber = 21 printfn $"The year is: {firstNumber + secondNumber}"비고
보간을 사용하는 형식 검사는 없으므로, 사용하기 간단해 보일 수 있습니다. 항목을 올바르게 결합해야 합니다.
지정자: 인쇄하려는 항목의 일부로 서식 지정자를 사용할 수도 있습니다. 지정자를 사용하는 것이 F#에서 서식을 지정하는 가장 일반적으로 사용되는 방법입니다. 예제는 다음과 같습니다.
let name = "Chris" printf "Hi %s" name // prints: Hi Chris여기에서 포맷터를
%s사용하여 첫 번째 문자열을 변수와 혼합하는 방법을 확인할 수 있습니다name.비고
%s 또는 %i같은 포맷터를 사용하는 경우 컴파일러는 형식을 확인합니다. 위치 인수가 지정한 형식이 아니면 오류가 발생합니다.
서식 지정자
많은 형식 지정자가 있습니다. 다음은 발생할 가능성이 있는 몇 가지 항목입니다.
| 지정자 | 설명 | 예시 |
|---|---|---|
| %s | 문자열 및 이스케이프되지 않은 콘텐츠에 사용됩니다 | printf "안녕하세요 %s" 이름 |
| %d, %i | 10진수 정수 형식으로 지정되고, 기본 정수 형식이 서명된 경우 서명됨 | printf "나이: %i" 65 |
| %b | 불리언 true 또는 false |
printf "설정: %b" true |
서식 지정에 대한 자세한 정보가 있습니다. 모든 기능에 대해 알고 싶다면 F# 문서의 서식을 참조하세요.