Język
Kolekcje i dane
Modeluj dane listami, mapami, strukturami i interfejsami strukturalnymi.
Listy i mapy
Listy używają indeksów całkowitych, a mapy kluczy tekstowych. Obie są mutowalnymi wartościami referencyjnymi i zachowują zadeklarowany typ elementów.
data.orvi
1struct Server {2 host: string3 port: int = 80804}56interface Named {7 name: string8}910let server = Server("localhost")11let ports: list<int> = [8080, 8081]12let config: map<string> = { mode: "release" }1314server.port = ports[1]15config["mode"] = "debug"
Struktury
Struktura deklaruje nazwane pola i może nadawać im wartości domyślne. Konstruktor przyjmuje wymagane pola pozycyjnie, zgodnie z kolejnością deklaracji. Pola odczytuje się i zmienia przez kropkę.
Interfejsy strukturalne
Interfejs opisuje wymagane pola, a nie dziedziczenie. Struktura spełnia interfejs, gdy nazwy i typy pól są zgodne.
interfaces.orvi
1interface Named {2 name: string3}45struct Job {6 name: string7 retries: int = 38}910fn label(value: Named) -> string {11 return value.name12}1314print(label(Job("release")))