F #-기본 구문
F # 프로그램의 기본 구조를 살펴 보았으므로 F # 프로그래밍 언어의 다른 기본 구성 요소를 쉽게 이해할 수 있습니다.
F #의 토큰
F # 프로그램은 다양한 토큰으로 구성됩니다. 토큰은 키워드, 식별자, 상수, 문자열 리터럴 또는 기호 일 수 있습니다. F # 토큰을 두 가지 유형으로 분류 할 수 있습니다.
- Keywords
- 기호 및 연산자
F # 키워드
다음 표는 키워드와 키워드에 대한 간략한 설명을 보여줍니다. 다음 장에서 이러한 키워드의 사용에 대해 설명합니다.
예어 | 기술 |
---|---|
abstract | 선언 된 형식에 구현이 없거나 가상이고 기본 구현이있는 메서드를 나타냅니다. |
and | 상호 재귀 바인딩, 속성 선언 및 일반 매개 변수에 대한 여러 제약 조건에 사용됩니다. |
as | 현재 클래스 개체에 개체 이름을 지정하는 데 사용됩니다. 또한 패턴 일치 내에서 전체 패턴에 이름을 지정하는 데 사용됩니다. |
assert | 디버깅 중에 코드를 확인하는 데 사용됩니다. |
base | 기본 클래스 개체의 이름으로 사용됩니다. |
begin | 자세한 구문에서 코드 블록의 시작을 나타냅니다. |
class | 자세한 구문에서 클래스 정의의 시작을 나타냅니다. |
default | 추상 메서드의 구현을 나타냅니다. 가상 메서드를 만들기 위해 추상 메서드 선언과 함께 사용됩니다. |
delegate | 대리자를 선언하는 데 사용됩니다. |
do | 루핑 구문이나 명령형 코드를 실행하는 데 사용됩니다. |
done | 자세한 구문에서 루핑 표현식에서 코드 블록의 끝을 나타냅니다. |
downcast | 상속 체인에서 더 낮은 유형으로 변환하는 데 사용됩니다. |
downto | 안에 for 식, 역으로 계산할 때 사용됩니다. |
elif | 조건부 분기에 사용됩니다. else if의 짧은 형식입니다. |
else | 조건부 분기에 사용됩니다. |
end | 형식 정의 및 형식 확장에서 멤버 정의 섹션의 끝을 나타냅니다. 자세한 구문에서 begin 키워드로 시작하는 코드 블록의 끝을 지정하는 데 사용됩니다. |
exception | 예외 유형을 선언하는 데 사용됩니다. |
extern | 선언 된 프로그램 요소가 다른 바이너리 또는 어셈블리에 정의되어 있음을 나타냅니다. |
false | 부울 리터럴로 사용됩니다. |
finally | 예외 발생 여부에 관계없이 실행되는 코드 블록을 도입하려고 시도와 함께 사용됩니다. |
for | 반복 구조에 사용됩니다. |
fun | 익명 함수라고도하는 람다 식에 사용됩니다. |
function | 단일 인수에 대한 패턴 일치가있는 람다 식에서 fun 키워드 및 일치 식에 대한 더 짧은 대안으로 사용됩니다. |
global | 최상위 .NET 네임 스페이스를 참조하는 데 사용됩니다. |
if | 조건부 분기 구문에 사용됩니다. |
in | 시퀀스 식에 사용되며 자세한 구문에서 식과 바인딩을 구분하는 데 사용됩니다. |
inherit | 기본 클래스 또는 기본 인터페이스를 지정하는 데 사용됩니다. |
inline | 호출자의 코드에 직접 통합되어야하는 함수를 나타내는 데 사용됩니다. |
interface | 인터페이스를 선언하고 구현하는 데 사용됩니다. |
internal | 멤버가 어셈블리 내부에는 표시되지만 외부에는 표시되지 않도록 지정하는 데 사용됩니다. |
lazy | 결과가 필요할 때만 수행 할 계산을 지정하는 데 사용됩니다. |
let | 이름을 값 또는 함수에 연결하거나 바인딩하는 데 사용됩니다. |
let! | 비동기 워크 플로에서 이름을 비동기 계산 결과에 바인딩하거나 다른 계산 식에서 이름을 계산 유형 인 결과에 바인딩하는 데 사용됩니다. |
match | 값을 패턴과 비교하여 분기하는 데 사용됩니다. |
member | 객체 유형에서 속성 또는 메서드를 선언하는 데 사용됩니다. |
module | 이름을 관련 유형, 값 및 함수 그룹과 연결하여 다른 코드와 논리적으로 구분하는 데 사용됩니다. |
mutable | 변수, 즉 변경할 수있는 값을 선언하는 데 사용됩니다. |
namespace | 이름을 관련 유형 및 모듈 그룹과 연결하여 다른 코드와 논리적으로 구분하는 데 사용됩니다. |
new | 객체를 생성하거나 생성 할 수있는 생성자를 선언, 정의 또는 호출하는 데 사용됩니다. 또한 형식에 특정 생성자가 있어야 함을 나타 내기 위해 일반 매개 변수 제약 조건에서 사용됩니다. |
not | 실제로 키워드가 아닙니다. 그러나 조합되지 않은 구조체는 일반 매개 변수 제약 조건으로 사용됩니다. |
null | 개체가 없음을 나타냅니다. 일반 매개 변수 제약에도 사용됩니다. |
of | 구분 된 공용체에서 값 범주 유형을 나타 내기 위해 사용되며 대리자 및 예외 선언에서 사용됩니다. |
open | 자격없이 네임 스페이스 또는 모듈의 내용을 사용할 수 있도록하는 데 사용됩니다. |
or | 부울 또는 연산자로 부울 조건과 함께 사용됩니다. ||와 같습니다. 멤버 제약에도 사용됩니다. |
override | 기본 버전과 다른 추상 또는 가상 메서드 버전을 구현하는 데 사용됩니다. |
private | 멤버에 대한 액세스를 동일한 유형 또는 모듈의 코드로 제한합니다. |
public | 유형 외부에서 구성원에 대한 액세스를 허용합니다. |
rec | 함수가 재귀임을 나타내는 데 사용됩니다. |
return | 계산 식의 결과로 제공 할 값을 나타내는 데 사용됩니다. |
return! | 계산시 포함 된 계산 식의 결과를 제공하는 계산 식을 나타내는 데 사용됩니다. |
select | 추출 할 필드 또는 열을 지정하기 위해 쿼리 표현식에 사용됩니다. 이것은 문맥 키워드이므로 실제로 예약어가 아니며 적절한 문맥에서 키워드처럼 작동합니다. |
static | 형식의 인스턴스없이 호출 할 수있는 메서드 나 속성 또는 형식의 모든 인스턴스간에 공유되는 값 멤버를 나타내는 데 사용됩니다. |
struct | 구조 유형을 선언하는 데 사용됩니다. 일반 매개 변수 제약에도 사용됩니다. 모듈 정의에서 OCaml 호환성에 사용됩니다. |
then | 조건식에 사용됩니다. 또한 객체 생성 후 부작용을 수행하는 데 사용됩니다. |
to | 범위를 나타 내기 위해 for 루프에서 사용됩니다. |
true | 부울 리터럴로 사용됩니다. |
try | 예외를 생성 할 수있는 코드 블록을 도입하는 데 사용됩니다. with 또는 finally 와 함께 사용됩니다 . |
type | 클래스, 레코드, 구조, 구별 된 공용체, 열거 유형, 측정 단위 또는 유형 약어를 선언하는 데 사용됩니다. |
upcast | 상속 체인에서 더 높은 유형으로 변환하는 데 사용됩니다. |
use | 리소스를 해제하기 위해 Dispose를 호출해야하는 값에 대해 let 대신 사용됩니다. |
use! | let 대신 사용! 리소스를 해제하기 위해 Dispose를 호출해야하는 값에 대한 비동기 워크 플로 및 기타 계산 식에서. |
val | 제한된 상황에서 값을 나타 내기 위해 서명에 사용되거나 멤버를 선언하는 형식에 사용됩니다. |
void | .NET void 유형을 나타냅니다. 다른 .NET 언어와 상호 운용 할 때 사용됩니다. |
when | 패턴 일치에 대한 부울 조건 (가드시) 에 사용되며 제네릭 유형 매개 변수에 대한 제약 조건 절을 도입합니다. |
while | 루핑 구조를 소개합니다. |
with | 패턴 일치 표현식에서 match 키워드와 함께 사용됩니다. 또한 멤버 정의를 도입하고 예외 처리기를 도입하기 위해 개체 식, 레코드 복사 식 및 형식 확장에 사용됩니다. |
yield | 시퀀스 값을 생성하기 위해 시퀀스 표현식에서 사용됩니다. |
yield! | 계산 표현식에서 주어진 계산 표현식의 결과를 포함하는 계산 표현식에 대한 결과 모음에 추가하는 데 사용됩니다. |
일부 예약 키워드는 OCaml 언어에서 나왔습니다.
asr | 나라 | lor | lsl | lsr | lxor | 모드 | 시그 |
다른 일부 예약 된 키워드는 향후 F # 확장을 위해 유지됩니다.
원자 | 단절 | 확인 | 구성 요소 | const | 강제 | constructor |
continue | eager | event | external | fixed | functor | include |
method | mixin | object | parallel | process | protected | pure |
sealed | tailcall | trait | virtual | volatile |
Comments in F#
F# provides two types of comments −
- One line comment starts with // symbol.
- Multi line comment starts with (* and ends with *).
A Basic Program and Application Entry Point in F#
Generally, you don’t have any explicit entry point for F# programs. When you compile an F# application, the last file provided to the compiler becomes the entry point and all top level statements in that file are executed from top to bottom.
A well-written program should have a single top-level statement that would call the main loop of the program.
A very minimalistic F# program that would display ‘Hello World’ on the screen −
(* This is a comment *)
(* Sample Hello World program using F# *)
printfn "Hello World!"
When you compile and execute the program, it yields the following output −
Hello World!