다음을 통해 공유


자세한 구문(F#)

F# 언어의 구문 대부분에는 자세한 구문과 간단한 구문이라는 두 가지 구문 형식을 사용할 수 있습니다. 자세한 구문은 일반적으로 사용되는 구문은 아니지만 들여쓰기에 크게 영향을 받지 않는다는 장점이 있습니다. 간단한 구문은 길이가 더 짧은 대신 구문의 시작과 끝을 나타내는 데 begin, end, in 등의 키워드를 추가로 사용하지 않고 들여쓰기 방식을 사용합니다. 기본 구문은 간단한 구문입니다. 이 항목에서는 간단한 구문을 사용하지 않을 때의 F# 구문 형식을 설명합니다. 자세한 구문은 언제나 사용할 수 있는 구문이므로 간단한 구문을 사용하도록 설정한 경우라 해도 일부 구문에 대해 자세한 구문 형식을 사용할 수 있습니다. 간단한 구문을 비활성화하려면 #light "off" 지시문을 사용하면 됩니다.

구문 표

다음 표에는 F# 언어 구문에 사용할 수 있는 간단한 구문과 자세한 구문이 나와 있습니다. 여기서는 두 형식 사이에 차이가 있는 경우를 중심으로 설명합니다. 이 표에서 꺾쇠 괄호(<>)로 묶은 부분은 사용자가 입력하는 구문 요소를 의미합니다. 이들 구문에 사용되는 구문 형식에 대한 자세한 내용은 각 언어 구문에 대해 설명하는 항목을 참조하십시오.

언어 구문

간단한 구문

자세한 구문

복합 식

<expression1>
<expression2>
<expression1>; <expression2>

중첩된 let 바인딩

let f x =
    let a = 1
    let b = 2
    x + a + b
let f x =
    let a = 1 in
    let b = 2 in
    x + a + b

코드 블록

    <expression1>
    <expression2>
    ...
    begin
        <expression1>;
        <expression2>;
    end

for...do

for counter = start to finish do
    ...
for counter = start .. finish do
    ...
    done

while...do

while <condition> do
    ...
while <condition> do
    ...
    done

for...in

for var in start .. finish do
    ...
for var in start .. finish do
    ...
    done

do

do ...
do ... in

레코드

type <record-name> =
    {
        <field-declarations>
    }
    <value-or-member-definitions>
type <record-name> =
    {
        <field-declarations>
    }
    with
        <value-or-member-definitions>
    end

클래스

type <class-name>(<params>) =
    ...
type <class-name>(<params>) =
    class
        ...
    end

구조체

[<StructAttribute>]
type <structure-name> =
    ...
type <structure-name> =
    struct
        ...
    end

구별된 공용 구조체

type <union-name> =
    | ...
    | ...
    ...
    <value-or-member definitions>
type <union-name> =
    | ...
    | ...
    ...
    with
         <value-or-member-definitions>

end

인터페이스

type <interface-name> =
    ...
type <interface-name> =
    interface
        ...
    end

개체 식

{ new <type-name>
    with
        <value-or-member-definitions>
    <interface-implementations>
}
{ new <type-name>
    with
        <value-or-member-definitions>
    end
    <interface-implementations>
}

인터페이스 구현

interface <interface-name>
    with
        <value-or-member-definitions>
interface <interface-name>
    with
        <value-or-member-definitions>
    end

형식 확장

type <type-name>
    with
        <value-or-member-definitions>
type <type-name>
    with
        <value-or-member-definitions>
    end

모듈

module <module-name> =
    ...
module <module-name> =
    begin
        ...
    end

참고 항목

개념

코드 서식 지정 지침(F#)

기타 리소스

F# 언어 참조

컴파일러 지시문(F#)