변수를 사용하여 값 저장

완료됨

모든 프로그램은 일반적으로 프로그램이 데이터에 대해 작동하는 여러 단계로 구성됩니다. 이러한 모든 단계를 실행하는 과정의 일부로, 간헐적인 결과인 데이터를 명명된 참조에 저장하는 것이 일반적입니다. 그런 다음 나중에 데이터를 읽거나 조작할 수 있습니다. 명명된 참조를 일반적으로 변수라고 합니다.

변수에 값 바인딩

변수는 코드에서 계속 참조하려는 값에 바인딩된 명명된 참조입니다. 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# 문서의 서식을 참조하세요.