Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!
Strony WWWSerwery VPSDomenyHostingDarmowy Hosting CBA.pl

Wbudowane struktury danych… cz. 2

Posted by Darek on Czerwiec 25, 2012

W pierwszej części opisałem struktury, które można znaleźć w dużej części języków. Teraz opiszę kilka struktur, które są specyficzne dla języka(ich funkcjonalność można wykonać np. dzięki klasom z C++).

Go1

Ta struktura odwzorowuję pewny klucz na wartość. Przykładowo:

przypusuje klucze o wartości liczbowe(np. 1, 2..) do „stringa”[coś jak tablica charów w C]
Przed wykonywaniem czynności trzeba naszą strukturę zainicjalizować:

A tutaj przykład użycia:

Typ wartośći/klucza nie zamyka się tylko w stringach czy intach. Można też używać „typów” tworzonych przez użytkownika:

Tutaj kluczem jest int, który jest indexem „typu” stworzonego przez użytkownika – struktura Vertex.
Materiał na którym bazowałem(w wersji angielskiej) to: http://tour.golang.org/#29

Kolejną strukturą na którą natrafiłem mały kurs go to „slices”, które tłumaczyć można jako wycinek/segment… lub kromka. By nie wprowadzać w błąd, będę używał angielskiej nazwy. Jest ona tablicą pewnego typu.
Struktura ta zawiera wartości opisujące aktualny rozmiar → length, oraz maxymalny rozmiar → capacity. Zalecane przez google(twórca Go) tworzenie przez funkcje make:

Przedstawiony powyżej przykład jest strukturą powiązaną z typem int. Go1 pozwala na użycie innych typów w slice’ach.
Wartośći – length oraz capacity pobieramy poprzez:

„Re-slicing”
Można slice’y podzielić na mniejsze lub nawet dodać.

Z slice’a „b” pobiera on wartości od „lo” do „hi-1”.

Przy czym wartości „lo” i „hi” mogą być pominięte:

Przyjmując wartości domyślne[lo -> początek; hi -> długość(len(b))]

J

Język ten jest bardziej związany z „tablicami” niż poprzednie języki. Praca na „tablicach” odbywa się podobnie jak na normalnych zmiennych.

Boxed value

Czyli „spakowana wartość”. Z moich eksperymentów z tą strukturą wynika, że ułatwia tworzenie tablic wielowymiarowych złożonych z różnych typów, w tym różniących się tablic.
Wystarczy użyć operatorem „<” :

aby spakować dane w pojedynczy „box”, lub użyć operatora „;”:

do połączenia wartości w tablice „box” [Arrays of Boxes].

Chciałbym spakować liczbę całkowitą, stringa(tablice znaków) i liczbę rzeczywistą, a to wszystko kilkakrotnie.
Operator „,” łączy te same typy, czyli teź „box”.
Operator (x $ y) tworzy tablicę, gdzie x to ilość elementów w kolejnych wymiarach; y to poszczególne elementy.

O to przykład:

Tablica 1

Idąc dalej mogę stworzyć tablicę „studentów”(tutaj 2x1):

O to wynik:
Tablica 2

Last modified on Kwiecień 18, 2013

Categories: Języki programowania
No Comments »

« | Home | »

Leave a Reply