F # - Cú pháp cơ bản

Bạn đã thấy cấu trúc cơ bản của một chương trình F #, vì vậy sẽ dễ dàng hiểu được các khối xây dựng cơ bản khác của ngôn ngữ lập trình F #.

Mã thông báo trong F #

Một chương trình F # bao gồm các mã thông báo khác nhau. Mã thông báo có thể là một từ khóa, một mã định danh, một hằng số, một chuỗi ký tự hoặc một ký hiệu. Chúng tôi có thể phân loại mã thông báo F # thành hai loại:

  • Keywords
  • Ký hiệu và toán tử

F # Từ khóa

Bảng sau đây cho thấy các từ khóa và mô tả ngắn gọn về các từ khóa. Chúng ta sẽ thảo luận về việc sử dụng các từ khóa này trong các chương tiếp theo.

Từ khóa Sự miêu tả
abstract Chỉ ra một phương thức không có triển khai trong kiểu mà nó được khai báo hoặc là ảo và có triển khai mặc định.
and Được sử dụng trong các ràng buộc đệ quy lẫn nhau, trong khai báo thuộc tính và với nhiều ràng buộc về các tham số chung.
as Được sử dụng để cung cấp cho đối tượng lớp hiện tại một tên đối tượng. Cũng được sử dụng để đặt tên cho toàn bộ mẫu trong khớp mẫu.
assert Được sử dụng để xác minh mã trong quá trình gỡ lỗi.
base Được sử dụng làm tên của đối tượng lớp cơ sở.
begin Trong cú pháp dài dòng, chỉ ra điểm bắt đầu của một khối mã.
class Trong cú pháp dài dòng, chỉ ra sự bắt đầu của một định nghĩa lớp.
default Cho biết việc thực hiện một phương thức trừu tượng; được sử dụng cùng với khai báo phương thức trừu tượng để tạo phương thức ảo.
delegate Dùng để khai báo một đại biểu.
do Được sử dụng trong các cấu trúc lặp hoặc để thực thi mã mệnh lệnh.
done Trong cú pháp dài dòng, chỉ ra phần cuối của một khối mã trong một biểu thức lặp.
downcast Được sử dụng để chuyển đổi sang một loại thấp hơn trong chuỗi kế thừa.
downto Trong một for biểu thức, được sử dụng khi đếm ngược lại.
elif Được sử dụng trong phân nhánh có điều kiện. Một dạng rút gọn của else if.
else Được sử dụng trong phân nhánh có điều kiện.
end

Trong định nghĩa kiểu và phần mở rộng kiểu, chỉ ra phần cuối của phần định nghĩa thành viên.

Trong cú pháp dài dòng, được sử dụng để chỉ định phần cuối của khối mã bắt đầu bằng từ khóa begin.

exception Dùng để khai báo một kiểu ngoại lệ.
extern Chỉ ra rằng một phần tử chương trình đã khai báo được định nghĩa trong một hệ nhị phân hoặc hợp ngữ khác.
false Được sử dụng như một nghĩa đen Boolean.
finally Được sử dụng cùng với việc cố gắng giới thiệu một khối mã thực thi bất kể trường hợp ngoại lệ có xảy ra hay không.
for Được sử dụng trong các cấu trúc lặp.
fun Được sử dụng trong biểu thức lambda, còn được gọi là hàm ẩn danh.
function Được sử dụng như một sự thay thế ngắn hơn cho từ khóa fun và một biểu thức đối sánh trong một biểu thức lambda có đối sánh mẫu trên một đối số.
global Được sử dụng để tham chiếu không gian tên .NET cấp cao nhất.
if Được sử dụng trong các cấu trúc phân nhánh có điều kiện.
in Được sử dụng cho các biểu thức trình tự và, trong cú pháp dài dòng, để tách các biểu thức khỏi các ràng buộc.
inherit Được sử dụng để chỉ định một lớp cơ sở hoặc giao diện cơ sở.
inline Được sử dụng để chỉ ra một chức năng cần được tích hợp trực tiếp vào mã của người gọi.
interface Dùng để khai báo và triển khai các giao diện.
internal Được sử dụng để chỉ định rằng một thành viên có thể nhìn thấy bên trong một assembly nhưng không hiển thị bên ngoài nó.
lazy Được sử dụng để chỉ định một phép tính chỉ được thực hiện khi cần kết quả.
let Được sử dụng để liên kết hoặc ràng buộc tên với một giá trị hoặc hàm.
let! Được sử dụng trong quy trình làm việc không đồng bộ để liên kết tên với kết quả của phép tính không đồng bộ hoặc trong các biểu thức tính toán khác, được sử dụng để liên kết tên với một kết quả, thuộc loại tính toán.
match Được sử dụng để phân nhánh bằng cách so sánh một giá trị với một mẫu.
member Được sử dụng để khai báo một thuộc tính hoặc một phương thức trong một kiểu đối tượng.
module Được sử dụng để liên kết tên với một nhóm các kiểu, giá trị và chức năng có liên quan, để tách nó khỏi mã khác một cách hợp lý.
mutable Dùng để khai báo một biến, tức là một giá trị có thể thay đổi được.
namespace Được sử dụng để liên kết tên với một nhóm các kiểu và mô-đun có liên quan, để tách nó khỏi mã khác một cách hợp lý.
new

Được sử dụng để khai báo, định nghĩa hoặc gọi một phương thức khởi tạo tạo hoặc có thể tạo một đối tượng.

Cũng được sử dụng trong các ràng buộc tham số chung để chỉ ra rằng một kiểu phải có một hàm tạo nhất định.

not Không thực sự là một từ khóa. Tuy nhiên, không phải kết hợp struct được sử dụng như một ràng buộc tham số chung.
null

Cho biết sự vắng mặt của một đối tượng.

Cũng được sử dụng trong các ràng buộc tham số chung.

of Được sử dụng trong các liên hiệp phân biệt đối xử để chỉ ra loại giá trị, và trong khai báo ủy quyền và ngoại lệ.
open Được sử dụng để cung cấp nội dung của không gian tên hoặc mô-đun mà không cần đủ điều kiện.
or

Được sử dụng với điều kiện Boolean như một Boolean hoặc toán tử. Tương đương với ||.

Cũng được sử dụng trong các ràng buộc thành viên.

override Được sử dụng để triển khai một phiên bản của phương thức trừu tượng hoặc ảo khác với phiên bản cơ sở.
private Hạn chế quyền truy cập của một thành viên vào mã trong cùng loại hoặc mô-đun.
public Cho phép truy cập vào một thành viên từ bên ngoài loại.
rec Được sử dụng để chỉ ra rằng một hàm là đệ quy.
return Được sử dụng để chỉ ra một giá trị cần cung cấp dưới dạng kết quả của một biểu thức tính toán.
return! Được sử dụng để chỉ ra một biểu thức tính toán, khi được đánh giá, cung cấp kết quả của biểu thức tính toán chứa.
select Được sử dụng trong biểu thức truy vấn để chỉ định trường hoặc cột nào cần trích xuất. Lưu ý rằng đây là một từ khóa theo ngữ cảnh, có nghĩa là nó thực sự không phải là một từ dành riêng và nó chỉ hoạt động giống như một từ khóa trong ngữ cảnh thích hợp.
static Được sử dụng để chỉ một phương thức hoặc thuộc tính có thể được gọi mà không có một thể hiện của kiểu hoặc một thành viên giá trị được chia sẻ giữa tất cả các thể hiện của kiểu.
struct

Dùng để khai báo một kiểu cấu trúc.

Cũng được sử dụng trong các ràng buộc tham số chung.

Được sử dụng để tương thích OCaml trong định nghĩa mô-đun.

then

Được sử dụng trong biểu thức điều kiện.

Cũng được sử dụng để thực hiện các hiệu ứng phụ sau khi xây dựng đối tượng.

to Được sử dụng trong vòng lặp for để chỉ ra một phạm vi.
true Được sử dụng như một nghĩa đen Boolean.
try Được sử dụng để giới thiệu một khối mã có thể tạo ra một ngoại lệ. Được sử dụng cùng với hoặc cuối cùng.
type Được sử dụng để khai báo một lớp, bản ghi, cấu trúc, liên hiệp phân biệt, kiểu liệt kê, đơn vị đo lường hoặc viết tắt kiểu.
upcast Được sử dụng để chuyển đổi sang một loại cao hơn trong chuỗi kế thừa.
use Được sử dụng thay vì let cho các giá trị yêu cầu Dispose được gọi đến tài nguyên miễn phí.
use! Được sử dụng thay vì let! trong quy trình làm việc không đồng bộ và các biểu thức tính toán khác cho các giá trị yêu cầu Dispose được gọi đến tài nguyên giải phóng.
val Được sử dụng trong một chữ ký để chỉ ra một giá trị, hoặc trong một kiểu để khai báo một thành viên, trong những tình huống hạn chế.
void Cho biết kiểu void .NET. Được sử dụng khi tương tác với các ngôn ngữ .NET khác.
when Được sử dụng cho các điều kiện Boolean (khi bảo vệ) trên mẫu khớp và để giới thiệu một mệnh đề ràng buộc cho một tham số kiểu chung.
while Giới thiệu một cấu trúc lặp.
with Được sử dụng cùng với từ khóa đối sánh trong biểu thức đối sánh mẫu. Cũng được sử dụng trong biểu thức đối tượng, biểu thức sao chép bản ghi và phần mở rộng kiểu để giới thiệu các định nghĩa thành viên và giới thiệu các trình xử lý ngoại lệ.
yield Được sử dụng trong biểu thức trình tự để tạo ra giá trị cho một chuỗi.
yield! Được sử dụng trong một biểu thức tính toán để nối kết quả của một biểu thức tính toán đã cho vào tập hợp các kết quả cho biểu thức tính toán có chứa.

Một số từ khóa dành riêng đến từ ngôn ngữ OCaml -

asr đất đai lor lsl lsr lxor mod dấu hiệu

Một số từ khóa dành riêng khác được giữ lại để mở rộng F # trong tương lai.

nguyên tử phá vỡ đã kiểm tra thành phần hăng sô hạn chế 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!