Jeśli chcesz odkryć więcej tematów rdzy, sprawdź naszą listę rdzy, aby dowiedzieć się więcej.
Parametr
Podczas deklarowania typów ogólnych znajdziesz parametr. Jest używany do reprezentowania dowolnego rodzaju danych w rdzy:
Pokazany jest przykład parametru typu w funkcji:
fn my_functionPowyższe określa funkcję ogólną, która przyjmuje argument t każdego typu.
Możesz zdefiniować wiele parametrów ogólnych, oddzielając je przecinkami:
fn my_functionW powyższej składni definiujemy wiele parametrów ogólnych, t, u, v. Chociaż nie jest to wymagane, powszechne jest znalezienie typów ogólnych zaczynających się od t i zwiększając alfabet.
Rdza Zdefiniuj ogólną strukturę
Możemy zdefiniować strukturę ogólną, jak pokazano w poniższej składni:
struktura strukturaWeźmy przykład, struktura zdefiniowana poniżej:
struktura myStructPowyższe tworzy ogólną strukturę z dwoma parametrami. Wewnątrz struktury określamy dwa elementy struktury typu t i u. Ponieważ t i u są typami ogólnymi, mogą być dowolnego typu.
Funkcje ogólne
Ten sam konstrukt może być zastosowany do funkcji i metody. Jeśli funkcja przyjmuje typ, mówi się, że jest funkcją ogólną.
Ogólna definicja funkcji jest jak pokazana:
FN FUNC_NAMEWeźmy przykład ogólnej definicji funkcji poniżej:
FN GenericW tym przykładzie mamy ogólną funkcję, która przyjmuje dowolny typ i drukuje ją do konsoli. Jednak uruchomienie powyższego kodu spowoduje błąd.
Ponieważ używamy parametru ogólnego, musimy wdrożyć cechę wyświetlania lub debugowania, aby go wydrukować. Możemy udoskonalić kod jako:
Użyj std :: fmt :: debug;W takim przypadku importujemy cechę debugowania i używamy jej dla typu ogólnego. Następnie możemy wydrukować wartość za pomocą symboli zastępczego cechy debugowania: :?
Ten sam przypadek ma zastosowanie, jeśli funkcja musi wykonywać dowolną operację. Weź poniższą funkcję przykładową, która zwraca 0, jeśli wartość jest równa, a 1, jeśli inaczej.
FN EVER_ODDJeśli wywołamy powyższą funkcję, zwróci błąd. Musimy wdrożyć cechę REM, aby działała jako:
Użyj std :: ops :: rem;Cechy REM i EQ pozwalają korzystać z resztę operatora i przeprowadzić logiczne porównanie.
Wniosek
W tym artykule badaliśmy podstawy pracy z ogólnymi typami w języku rdzy. Sprawdź dokumenty, aby dowiedzieć się więcej.