Instrukcja warunkowa (switch) vs. tabela wyszukiwania w MapForce
Jedną z wspaniałych rzeczy w pracy z programistami jest to, że nie tylko tworzy się nowe rzeczy, które wcześniej nie istniały, ale również można obserwować, jak myślą inni, gdy znajdują alternatywne rozwiązania dla każdego problemu projektowego. Otrzymaliśmy komentarz od programisty w odniesieniu do naszego ostatniego wpisu zatytułowanego: Rozszerzalne instrukcje warunkowe "jeśli-wtedy-inaczej" działają podobnie do instrukcji przełącznika w programie MapForce dotyczącego jednego z przykładów, które wykorzystaliśmy. Czytelnik sugeruje, że nasz drugi przykład ilustrował problem, który można by rozwiązać bardziej elegancko w Altova MapForce przy użyciu mechanizmu Value-Map, a nie za pomocą rozszerzonej instrukcji warunkowej "if-else". Poniżej znajduje się oryginalny przykład, w którym miesiąc był przekazywany jako ciąg znaków, a program musiał wygenerować odpowiadającą mu liczbę:
![]()
W MapForce, "Mapa wartości" to alternatywne rozwiązanie, które działa jak tabela wyszukiwania, podczas gdy rozbudowane instrukcje warunkowe działają jak instrukcja przełączająca. Poniżej przedstawiono, jak wyglądałby nasz proces mapowania, gdybyśmy zastosowali "Mapę wartości" zamiast rozbudowanych instrukcji warunkowych:
![]()
Tak, dokładnie. Zamiast kopiować, wklejać i modyfikować zestawy elementów, jak to robiliśmy w przypadku naszej oryginalnej rozbudowanej konstrukcji warunkowej "if-else", funkcja "Value-Map" pozwala nam łatwo tworzyć całą tabelę wyszukiwania w jej oknie właściwości:
![]()
Zgadzamy się z opinią autora komentarza – narzędzie Value-Map zdecydowanie lepiej sprawdza się w przypadku problemu, który wybraliśmy, ponieważ jest znacznie szybsze i łatwiejsze w użyciu! Tabela z właściwości Mapy Wartości jest również bardziej zwięzła i łatwiejsza do interpretacji w programie MapForceWygenerowana dokumentacja mapowania niż nasza oryginalna, rozszerzona struktura warunkowa "if-else". Oczywiście, że nie możesz zawsze Zastąpić rozbudowaną instrukcję warunkową (if-else) mapowaniem wartości. Dane wprowadzane do systemu Value-Map muszą równy Pojedyncza wartość w tabeli wejściowej generuje określony wynik, natomiast funkcja "Rozszerzone instrukcje warunkowe" umożliwia zdefiniowanie serii warunków z różnymi testami logicznymi. Czasami, ze względu na specyfikę projektu konwersji danych, decyzja o użyciu przełącznika zamiast tabeli wyszukiwania jest kwestią indywidualnej oceny. Załóżmy, że Twój projekt otrzymuje dane wejściowe w postaci liczby, która reprezentuje długość fali spektrum elektromagnetycznego, i chcesz przetwarzać promieniowanie ultrafioletowe, widzialne oraz podczerwone oddzielnie. W takim przypadku moglibyśmy użyć rozszerzonej konstrukcji warunkowej "if-else" do sprawdzania zakresów wartości wejściowych. Rozszerzona sekcja "if-else" w mapowaniu może wyglądać następująco:
![]()
Jeśli dane wejściowe są liczbą całkowitą, można również stworzyć rozwiązanie przy użyciu Value-Map, ale wymagałoby to zbudowania bardzo obszernej tabeli odniesień. Co więcej, co się stanie później, jeśli wymagania projektu się zmienią i dane wejściowe staną się liczbą dziesiętną, lub jeśli trzeba będzie filtrować każdy kolor oddzielnie według nazwy? W zasadzie Altova MapForce to bardzo przydatne narzędzie graficzne, które stanowi kompleksowy zestaw narzędzi programistycznych, chroniąc użytkownika przed szczegółową składnią języków programowania. Oferuje bogaty zestaw komponentów, które można kreatywnie łączyć, aby rozwiązywać własne problemy związane z mapowaniem, konwersją i integracją danych.
Sprawdź sam, jak łatwo jest wykorzystać MapForce w swoich projektach mapowania danych. Pobierz bezpłatną 30-dniową wersję próbną MapForce.