Materiały referencyjne dotyczące języka F#

Ta sekcja jest dokumentacją języka F#, języka programowania wielodygmatycznego przeznaczonego dla platformy .NET. Język F# obsługuje modele programowania funkcjonalnego, obiektowego i imperatywnego.

Organizowanie kodu F#

W poniższej tabeli przedstawiono artykuły referencyjne związane z organizowaniem kodu F#.

Tytuł Opis
Przestrzenie nazw Dowiedz się więcej o obsłudze przestrzeni nazw w języku F#. Przestrzeń nazw umożliwia organizowanie kodu w obszary powiązanych funkcji, umożliwiając dołączenie nazwy do grupowania elementów programu.
Moduły Dowiedz się więcej o modułach. Moduł języka F# jest jak przestrzeń nazw i może również zawierać wartości i funkcje. Grupowanie kodu w modułach pomaga zachować powiązany kod razem i pomaga uniknąć konfliktów nazw w programie.
open Deklaracje Dowiedz się więcej o tym, jak open działa. Deklaracja open określa moduł, przestrzeń nazw lub typ, do którego można odwoływać się bez użycia w pełni kwalifikowanej nazwy.
Podpisy Dowiedz się więcej o podpisach i plikach podpisów. Plik podpisu zawiera informacje o podpisach publicznych zestawu elementów programu języka F#, takich jak typy, przestrzenie nazw i moduły. Może służyć do określania dostępności tych elementów programu.
Kontrola dostępu Dowiedz się więcej o kontroli dostępu w języku F#. Kontrola dostępu oznacza deklarowanie, co klienci mogą używać niektórych elementów programu, takich jak typy, metody, funkcje itd.
Dokumentacja XML Dowiedz się więcej o obsłudze generowania plików dokumentacji z komentarzy dokumentacji XML, nazywanych również komentarzami potrójnego ukośnika. Dokumentację można tworzyć z komentarzy kodu w języku F#, tak jak w innych językach platformy .NET.

Literały i ciągi

W poniższej tabeli przedstawiono artykuły referencyjne opisujące literały i ciągi w języku F#.

Tytuł Opis
Literały Dowiedz się więcej na temat składni wartości literałów w języku F# i sposobu określania informacji o typie literałów języka F#.
Ciągi Dowiedz się więcej o ciągach w języku F#. Typ string reprezentuje tekst niezmienny jako sekwencję znaków Unicode. string jest aliasem dla System.String platformy .NET.
Ciągi interpolowane Dowiedz się więcej o ciągach interpolowanych, specjalnej formie ciągu, która umożliwia osadzanie wyrażeń języka F# bezpośrednio wewnątrz nich.

Wartości i funkcje

W poniższej tabeli przedstawiono artykuły referencyjne opisujące pojęcia dotyczące języka związane z wartościami, let-bindings i funkcjami.

Tytuł Opis
Wartości Dowiedz się więcej o wartościach, które są niezmienne ilości, które mają określony typ; wartości mogą być liczbami całkowitymi lub zmiennoprzecinkowymi, znakami lub tekstem, listami, sekwencjami, tablicami, krotkami, dyskryminowanymi związkami, rekordami, typami klas lub wartościami funkcji.
Funkcje Funkcje są podstawową jednostką wykonywania programu w dowolnym języku programowania. Funkcja języka F# ma nazwę, może mieć parametry i przyjmować argumenty oraz ma treść. Język F# obsługuje również konstrukcje programowania funkcjonalnego, takie jak traktowanie funkcji jako wartości, używanie funkcji nienazwanych w wyrażeniach, kompozycja funkcji do tworzenia nowych funkcji, funkcji curried i niejawnej definicji funkcji za pomocą częściowego stosowania argumentów funkcji.
Wyrażenia funkcji Dowiedz się, jak używać słowa kluczowego "fun" języka F# do definiowania wyrażenia lambda, które jest funkcją anonimową.

Pętle i warunkowe

W poniższej tabeli wymieniono artykuły opisujące pętle i instrukcje warunkowe języka F#.

Tytuł Opis
Wyrażenia warunkowe: if...then...else Dowiedz się więcej o wyrażeniu if...then...else , które uruchamia różne gałęzie kodu, a także oblicza inną wartość w zależności od podanego wyrażenia logicznego.
Pętle: for...in wyrażenie Dowiedz się więcej o wyrażeniu for...in , konstrukcji pętli używanej do iterowania dopasowań wzorca w kolekcji wyliczalnej, takiej jak wyrażenie zakresu, sekwencja, lista, tablica lub inna konstrukcja, która obsługuje wyliczenie.
Pętle: for...to wyrażenie Dowiedz się więcej o wyrażeniu for...to , które jest używane do iterowania w pętli w zakresie wartości zmiennej pętli.
Pętle: while...do wyrażenie Dowiedz się więcej o wyrażeniu while...do , które jest używane do wykonywania iteracyjnego (pętli), gdy określony warunek testu ma wartość true.

Dopasowanie wzorca

W poniższej tabeli przedstawiono artykuły referencyjne opisujące pojęcia dotyczące języka.

Tytuł Opis
Dopasowywanie wzorca Dowiedz się więcej o wzorcach, które są regułami przekształcania danych wejściowych i są używane w języku F#. Dane można porównać ze wzorcem, rozkładać dane na części składowe lub wyodrębniać informacje z danych na różne sposoby.
Wyrażenia dopasowania Dowiedz się więcej o wyrażeniu match , które zapewnia kontrolkę rozgałęziania opartą na porównywaniu wyrażenia z zestawem wzorców.
Wzorce aktywne Dowiedz się więcej o aktywnych wzorcach. Aktywne wzorce umożliwiają definiowanie nazwanych partycji, które dzielą dane wejściowe. Za pomocą aktywnych wzorców można rozkładać dane w dostosowany sposób dla każdej partycji.

Obsługa wyjątków

W poniższej tabeli przedstawiono artykuły referencyjne opisujące pojęcia dotyczące języka związane z obsługą wyjątków.

Tytuł Opis
Obsługa wyjątków Zawiera informacje o obsłudze wyjątków w języku F#.
Wyrażenie try...with Dowiedz się, jak używać try...with wyrażenia do obsługi wyjątków.
Wyrażenie try...finally Dowiedz się, jak wyrażenie języka F# try...finally umożliwia wykonywanie kodu czyszczenia, nawet jeśli blok kodu zgłasza wyjątek.
Słowo use kluczowe Dowiedz się więcej o słowach kluczowych use i using, które mogą kontrolować inicjowanie i wydawanie zasobów.
Potwierdzenia Dowiedz się więcej o wyrażeniu assert , czyli funkcji debugowania, której można użyć do testowania wyrażenia. Po awarii w trybie debugowania potwierdzenie generuje okno dialogowe błędu systemu.

Typy i wnioskowanie typów

W poniższej tabeli przedstawiono artykuły referencyjne opisujące sposób działania typów i wnioskowania typów w języku F#.

Tytuł Opis
Typy Dowiedz się więcej o typach używanych w języku F# oraz o nazwach i opisach typów F#.
Typy podstawowe Dowiedz się więcej o podstawowych typach używanych w języku F#. Udostępnia również odpowiednie typy platformy .NET oraz minimalne i maksymalne wartości dla każdego typu.
Typ jednostki Dowiedz się więcej o typie unit , który wskazuje brak określonej wartości; unit typ ma tylko jedną wartość, która działa jako symbol zastępczy, gdy nie istnieje żadna inna wartość lub jest potrzebna.
Skróty typów Dowiedz się więcej o skrótach typów, które są alternatywnymi nazwami typów.
Wnioskowanie o typie Dowiedz się, jak kompilator języka F# wywnioskuje typy wartości, zmiennych, parametrów i zwracanych wartości.
Rzutowanie i konwersje Dowiedz się więcej o obsłudze konwersji typów w języku F#.
Typy ogólne Dowiedz się więcej o konstrukcjach ogólnych w języku F#.
Automatyczna generalizacja Dowiedz się, jak język F# automatycznie uogólnia argumenty i typy funkcji tak, aby działały z wieloma typami, gdy jest to możliwe.
Ograniczenia Dowiedz się więcej o ograniczeniach, które mają zastosowanie do parametrów typu ogólnego, aby określić wymagania dotyczące argumentu typu w typie ogólnym lub funkcji.
Typy elastyczne Dowiedz się więcej o typach elastycznych. Adnotacja typu elastycznego jest wskazaniem, że parametr, zmienna lub wartość ma typ zgodny z określonym typem, gdzie zgodność jest określana przez położenie w hierarchii obiektowej klas lub interfejsów.
Jednostki miary Dowiedz się więcej o jednostkach miary. Wartości zmiennoprzecinkowe w języku F# mogą mieć skojarzone jednostki miary, które są zwykle używane do wskazywania długości, woluminu, masy itd.
Byrefs Dowiedz się więcej o typach byref i byref w języku F#, które są używane do programowania niskiego poziomu.

Krotki, listy, kolekcje, opcje

W poniższej tabeli przedstawiono artykuły referencyjne opisujące typy obsługiwane przez język F#.

Tytuł Opis
Krotki Dowiedz się więcej o krotkach, które są grupami nienazwanych, ale uporządkowanymi wartościami prawdopodobnie różnych typów.
Kolekcje Omówienie typów kolekcji funkcjonalnych języka F#, w tym typów tablic, list, sekwencji (seq), map i zestawów.
Listy Dowiedz się więcej o listach. Lista w języku F# jest uporządkowaną, niezmienną serią elementów tego samego typu.
Opcje Dowiedz się więcej o typie opcji. Opcja w języku F# jest używana, gdy wartość może lub nie istnieje. Opcja ma typ bazowy i może przechowywać wartość tego typu lub może nie mieć wartości.
Tablice Dowiedz się więcej o tablicach. Tablice to stałe, oparte na zerowej, modyfikowalnej sekwencje kolejnych elementów danych, wszystkie tego samego typu.
Sekwencje Dowiedz się więcej o sekwencjach. Sekwencja jest logiczną serią elementów wszystkich typów. Poszczególne elementy sekwencji są obliczane tylko w razie potrzeby, więc reprezentacja może być mniejsza niż liczba elementów literału.
Wyrażenia sekwencji Dowiedz się więcej o wyrażeniach sekwencji, które umożliwiają generowanie sekwencji danych na żądanie.
Komórki odwołań Dowiedz się więcej o komórkach referencyjnych, które są lokalizacjami przechowywania, które umożliwiają tworzenie zmiennych modyfikowalnych przy użyciu semantyki odwołań.

Rejestry i związki dyskryminowane

W poniższej tabeli przedstawiono artykuły referencyjne opisujące definicje typów rekordów i dyskryminowanych typów unii obsługiwanych przez język F#.

Tytuł Opis
Rekordy Dowiedz się więcej o rekordach. Rekordy reprezentują proste agregacje nazwanych wartości, opcjonalnie z elementami członkowskimi.
Rekordy anonimowe Dowiedz się, jak tworzyć i używać rekordów anonimowych— funkcję języka, która pomaga w manipulowaniu danymi.
Sumy rozłączne Dowiedz się więcej o dyskryminowanych związkach, które zapewniają obsługę wartości, które mogą być jedną z różnych nazwanych przypadków, z których każda ma prawdopodobnie różne wartości i typy.
Struktury Dowiedz się więcej o strukturach, które są kompaktowymi typami obiektów, które mogą być bardziej wydajne niż klasa dla typów, które mają niewielką ilość danych i proste zachowanie.
Wyliczenia Wyliczenia to typy, które mają zdefiniowany zestaw nazwanych wartości. Można ich używać zamiast literałów, aby kod był bardziej czytelny i można go obsługiwać.

Programowanie obiektów

W poniższej tabeli przedstawiono artykuły referencyjne opisujące programowanie obiektów języka F#.

Tytuł Opis
Klasy Dowiedz się więcej o klasach, które są typami reprezentującymi obiekty, które mogą mieć właściwości, metody i zdarzenia.
Interfejsy Dowiedz się więcej o interfejsach, które określają zestawy powiązanych elementów członkowskich implementujących inne klasy.
Klasy abstrakcyjne Dowiedz się więcej o klasach abstrakcyjnych, które są klasami, które pozostawiają niektóre lub wszystkie elementy członkowskie nieimplementowane, dzięki czemu implementacje mogą być udostępniane przez klasy pochodne.
Rozszerzenia typu Dowiedz się więcej o rozszerzeniach typów, które umożliwiają dodawanie nowych elementów członkowskich do wcześniej zdefiniowanego typu obiektu.
Delegaci Dowiedz się więcej o delegatach reprezentujących wywołanie funkcji jako obiekt.
Dziedziczenie Dowiedz się więcej o dziedziczeniu używanym do modelowania relacji "is-a" lub podtypowania w programowaniu obiektowym.
Elementy członkowskie Dowiedz się więcej o elementach członkowskich typów obiektów języka F#.
Parametry i argumenty Dowiedz się więcej o obsłudze języka do definiowania parametrów i przekazywania argumentów do funkcji, metod i właściwości. Zawiera on informacje o sposobie przekazywania przez odwołanie.
Przeciążenie operatora Dowiedz się, jak przeciążać operatory arytmetyczne w klasie lub typie rekordu oraz na poziomie globalnym.
Wyrażenia obiektów Dowiedz się więcej o wyrażeniach obiektów, które są wyrażeniami, które tworzą nowe wystąpienia dynamicznie utworzonego, anonimowego typu obiektu opartego na istniejącym typie podstawowym, interfejsie lub zestawie interfejsów.

Async, Tasks and Lazy

W poniższej tabeli wymieniono tematy opisujące wyrażenia asynchroniczne języka F#, zadania i leniwe.

Tytuł Opis
Wyrażenia asynchroniczne Dowiedz się więcej o wyrażeniach asynchronicznych, które umożliwiają pisanie kodu asynchronicznego w sposób bardzo zbliżony do sposobu naturalnego pisania synchronicznego kodu.
Wyrażenia zadań Dowiedz się więcej o wyrażeniach zadań, które są alternatywnym sposobem pisania asynchronicznego kodu używanego podczas współdziałania z kodem platformy .NET, który używa lub tworzy zadania platformy .NET.
Wyrażenia z opóźnionym obliczaniem Dowiedz się więcej na temat wyrażeń leniwych, które są obliczeniami, które nie są obliczane natychmiast, ale zamiast tego są oceniane, gdy wynik jest rzeczywiście potrzebny.

Wyrażenia obliczeniowe i zapytania

W poniższej tabeli wymieniono tematy opisujące wyrażenia obliczeniowe i zapytania języka F#.

Tytuł Opis
Wyrażenia obliczeń Dowiedz się więcej na temat wyrażeń obliczeniowych w języku F#, które zapewniają wygodną składnię do pisania obliczeń, które można sekwencjonować i łączyć przy użyciu konstrukcji i powiązań przepływu sterowania. Mogą służyć do zarządzania danymi, kontrolą i skutkami ubocznymi w programach funkcjonalnych.
Wyrażenia kwerend Dowiedz się więcej na temat wyrażeń zapytań, funkcji języka, która implementuje linQ for F# i umożliwia pisanie zapytań względem źródła danych lub kolekcji z możliwością wyliczania.

Atrybuty, odbicie, cudzysłów i formatowanie zwykłego tekstu

W poniższej tabeli wymieniono artykuły opisujące funkcje odbicia języka F#, w tym atrybuty, cudzysłów, nameofi formatowanie zwykłego tekstu.

Tytuł Opis
Atrybuty Dowiedz się, jak atrybuty języka F# umożliwiają stosowanie metadanych do konstrukcji programowania.
nameof Dowiedz się więcej na nameof temat operatora — funkcji programowania metaprogramowania, która umożliwia utworzenie nazwy dowolnego symbolu w kodzie źródłowym.
Informacje o obiekcie wywołującym Dowiedz się, jak używać atrybutów argumentów informacji o obiekcie wywołującym w celu uzyskania informacji o obiekcie wywołującym z metody.
Identyfikatory wiersza źródłowego, pliku i ścieżki Dowiedz się więcej o identyfikatorach __LINE__, __SOURCE_DIRECTORY__i __SOURCE_FILE__, które są wbudowanymi wartościami, które umożliwiają dostęp do numeru wiersza źródłowego, katalogu i nazwy pliku w kodzie.
Cytaty kodu Dowiedz się więcej na temat cudzysłowów kodu — funkcji języka, która umożliwia programowe generowanie wyrażeń kodu języka F# i pracę z nimi.
Format zwykłego tekstu Dowiedz się, jak używać funkcji sprintf i innego formatowania zwykłego tekstu w aplikacjach i skryptach języka F#.

Dostawcy typów

W poniższej tabeli wymieniono artykuły opisujące dostawców typów języka F#.

Tytuł Opis
Dostawcy typów Dowiedz się więcej o dostawcach typów i znajdź linki do przewodników dotyczących używania wbudowanych dostawców typów do uzyskiwania dostępu do baz danych i usług internetowych.
Tworzenie dostawcy typów Dowiedz się, jak utworzyć własnych dostawców typów języka F#, sprawdzając kilku prostych dostawców typów, którzy ilustrują podstawowe pojęcia.

Dokumentacja podstawowego interfejsu API biblioteki języka F#

Dokumentacja interfejsu API biblioteki podstawowej języka F# (FSharp.Core) jest odwołaniem do wszystkich przestrzeni nazw biblioteki podstawowej języka F#, modułów, typów i funkcji.

Tabele odwołań

W poniższej tabeli przedstawiono artykuły referencyjne zawierające tabele słów kluczowych, symboli i literałów, które są używane jako tokeny w języku F#.

Tytuł Opis
Odwołanie do słowa kluczowego Zawiera łącza do informacji o wszystkich słowach kluczowych języka F#.
Odwołanie do symbolu i operatora Zawiera tabelę symboli i operatorów używanych w języku F#.

Konstrukcje obsługiwane przez kompilator

W poniższej tabeli wymieniono tematy opisujące specjalne konstrukcje obsługiwane przez kompilator.

Temat Opis
Opcje kompilatora Opisuje opcje wiersza polecenia kompilatora języka F#.
Dyrektywy kompilatora Opisuje dyrektywy procesora i dyrektywy kompilatora obsługiwane przez kompilator języka F#.