Pytania na rozmowę kwalifikacyjną Flashcards

1
Q

Co to jest język programowania Go?

A

GO to język programowania open source opracowany przez Google. Znany jest również jako Golang. Język ten jest przeznaczony głównie do programowania systemowego.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Dlaczego należy używać języka programowania Go?

A

Golang to open-sourcowy język programowania, który charakteryzuje się prostotą składni (co mocno ułatwia jego naukę), ale też dużą wydajnością (dzięki czemu programy pisane w GO mają szerokie zastosowanie na tzw. ‘backendzie’). Jego wersja 1.0 miała swoją publiczną premierę w 2012.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kto jest znany jako ojciec języka programowania Go?

A

Język programowania Go został zaprojektowany przez Roberta Griesemera, Roba Pike’a i Kena Thompsona. Został opracowany w Google Inc. w 2009 roku.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Czym są pakiety w programie Go?

A

Programy Go składają się z pakietów. Program zaczyna działać w pakiecie głównym. Ten program używa pakietów ze ścieżkami importu “fmt” i “math/rand”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czy Go obsługuje programowanie generyczne?

A

Język programowania Go zapewnia obsługę programowania generycznego od wersji 1.18.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Czy w Go jest rozróżniana wielkość liter?

A

Tak! Go to język programowania uwzględniający wielkość liter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czy Go obsługuje programowanie ogólne?

A

Tak, od wersji 1.18.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Co to jest literał ciągu w programowaniu Go?

A

Literały łańcuchowe określają stałą łańcuchową, która jest uzyskiwana przez łączenie sekwencji znaków.

Istnieją dwa rodzaje literałów łańcuchowych:

 Literały nieprzetworzonego ciągu znaków: wartość literałów nieprzetworzonych ciągów znaków to sekwencja znaków między tylnymi cudzysłowami „. Jego wartość jest określona jako literał ciągu, który składa się z nieprzerwanego znaku między cudzysłowami.
 Interpretowane literały ciągu: są wyświetlane między podwójnymi cudzysłowami „ ”. Wartość literału jest określona jako tekst między podwójnymi cudzysłowami.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Co to jest przestrzeń robocza w Go?

A

Obszar roboczy zawiera kod Go. Obszar roboczy to hierarchia katalogów z trzema katalogami w swoim katalogu głównym.

 Katalog "src" zawiera pliki źródłowe GO zorganizowane w pakiety.
 Katalog "pkg" zawiera obiekty pakietów.
 Katalog "bin" zawiera wykonywalne polecenia
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Jaka jest domyślna wartość typu bool w programowaniu Go?

A

„false” to domyślna wartość typu „bool”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Co to jest zmienna środowiskowa GOPATH w programowaniu go?

A

Zmienna środowiskowa GOPATH określa położenie obszaru roboczego. Musisz ustawić tę zmienną środowiskową podczas tworzenia kodu Go.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jakie są zalety/korzyści języka programowania Go?

A

Zalety/Zalety języka programowania Go:

 Go jest szybki i bardzo szybko się kompiluje.
 Obsługuje współbieżność na poziomie języka.
 Posiada zbiórkę śmieci.
 Obsługuje różne funkcje bezpieczeństwa i funkcje programowania współbieżnego w stylu Content Security Policy.
 W języku wbudowane są ciągi znaków i mapy.
 Funkcje są obiektami pierwszej klasy w tym języku.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jakie są kilka wbudowanych podpór w Go?

A

Lista wbudowanych podpór w Go:

Container: container/list,container/heap
Web Server: net/http
Cryptography: Crypto/md5 ,crypto/sha1
Compression: compress/ gzip
Database: database/sql
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Czym jest gorutyna w języku programowania Go?

A

Goroutine to funkcja, która zwykle działa jednocześnie z innymi funkcjami. Jeśli chcesz zatrzymać gorutynę, przekazujesz kanał sygnałowy do gorutyny, ten kanał sygnałowy wpycha wartość, gdy chcesz, aby gorutyna się zatrzymała.

Goroutine regularnie odpytuje kanał, gdy tylko wykryje sygnał, kończy działanie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jak napisać wiele ciągów znaków w programowaniu Go?

A

Tworzenie wielowierszowych łańcuchów w Go jest w rzeczywistości bardzo proste. Wystarczy użyć znaku backtick ( ` ) podczas deklarowania lub przypisywania wartości łańcuchowi. str := To jest łańcuch wielowierszowy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jakie jest zastosowanie instrukcji break w języku programowania Go?

A

Instrukcja break służy do zakończenia instrukcji pętli for lub switch i przeniesienia wykonania do instrukcji bezpośrednio następującej po pętli for lub switch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Jakie jest zastosowanie instrukcji continue w języku programowania Go?

A

Instrukcja continue ułatwia pętli pominięcie pozostałej części jej treści i natychmiastowe ponowne przetestowanie jej stanu przed powtórzeniem.

18
Q

Jakie jest zastosowanie instrukcji goto w języku programowania Go?

A

Instrukcja goto służy do przekazywania kontroli do instrukcji oznaczonej etykietą.

19
Q

Wyjaśnij składnię pętli „for”

A

Składnia pętli for w języku programowania Go to:

for [condition |  ( init; condition; increment ) | Range]  
{  
   statement(s);  
}
20
Q

Napisz składnię do tworzenia funkcji w języku programowania Go?

A
func function_name( [parameter list] ) [return_types]  
    {  
       body of the function  
    }
21
Q

Wyjaśnij deklarację typu statycznego zmiennej w języku programowania Go?

A

Deklaracja zmiennej typu statycznego służy do zapewnienia kompilatorowi, że istnieje jedna zmienna w danym typie i nazwie, dzięki czemu kompilator nie musi znać pełnych szczegółów na temat zmiennej do dalszego przetwarzania. Deklaracja zmiennej ma swoje znaczenie tylko w momencie kompilacji, kompilator potrzebuje faktycznej deklaracji zmiennej w momencie linkowania programu.

22
Q

Wyjaśnij deklarację typu dynamicznego zmiennej w języku programowania Go?

A

Deklaracja zmiennej typu dynamicznego wymaga kompilatora do interpretacji typu zmiennej zgodnie z przekazaną do niej wartością. Kompilatory nie potrzebują zmiennej, aby mieć typ statycznie jako wymagane wymaganie.

23
Q

Jak wypisałbyś typ zmiennej w Go?

A

var a, b, c = 3, 4, “foo”

fmt.Printf(“a is of type %T\n”, a)

24
Q

Czym jest wskaźnik w Go?

A

Wskaźnik służy do przechowywania adresu zmiennej.

Na przykład:

    var x = 5  
    var p *int  
    p = &x  
    fmt.Printf("x = %d", *p)  

Tutaj x można uzyskać za pomocą *p.

25
Q

Jak wskaźnik jest reprezentowany w Go?

A

W Go wskaźnik jest reprezentowany za pomocą znaku *(gwiazdka), po którym następuje typ przechowywanej wartości.

26
Q

Czy to prawda, że krótka deklaracja zmiennej := może być użyta tylko wewnątrz funkcji?

A

Tak. Krótka deklaracja zmiennej := może być użyta tylko wewnątrz funkcji.

27
Q

Jak sformatować ciąg bez drukowania?

A

Aby sformatować ciąg bez drukowania, powinieneś wykonać następujące polecenie:

return fmt.Sprintf (“at %v, %s” , e.When , e.What )

28
Q

Jaka jest składnia w języku programowania Go?

A

Składnia języka programowania GO jest określana za pomocą rozszerzonego formularza Backus-Naur (EBNF):

Production = production_name "=" [ Expression ]
Expression = Alternative { "l" Alternative }
Alternative = Term { Term }
Term = Production_name l token [ "?"token] l Group l Option l Repetition
Group = " ( "" Expression")"
Option = " [ " Expression "" ]"
Repetition = " {" Expression "}"
29
Q

Czy język programowania Go obsługuje dziedziczenie typów?

A

Język programowania Go nie zapewnia obsługi dziedziczenia typów.

30
Q

Czy język programowania Go obsługuje przeciążanie operatorów?

A

Język programowania Go nie zapewnia obsługi przeciążania operatora.

31
Q

Czy Go obsługuje przeciążanie metod?

A

Język programowania Go nie zapewnia obsługi przeciążania metod.

32
Q

Czy Go obsługuje arytmetykę wskaźników?

A

Język programowania Go nie obsługuje arytmetyki wskaźników.

33
Q

Co to są interfejsy Go?

A

W GO interfejsy to sposób na identyfikację zachowania obiektu. Interfejs jest tworzony przy użyciu słowa „type”, po którym następuje nazwa i słowo kluczowe interface. Interfejs jest określony jako dwie rzeczy.

 Zestaw metod.
 Jest również określany jako typ.
34
Q

Co to jest asercja typu w Go? Co to robi?

A

Asercja typu przyjmuje wartość interfejsu i pobiera z niej wartość określonego jawnego typu.

Konwersja typów służy do konwertowania różnych typów w GO.

35
Q

Jakie są różne metody w języku programowania Go?

A

W języku programowania Go istnieje kilka różnych typów funkcji zwanych metodami. W składni deklaracji metody „odbiorca” jest używany do reprezentowania kontenera funkcji. Ten odbiornik może być używany do wywołania funkcji za pomocą “.” operator.

36
Q

Jaka jest domyślna wartość zmiennej lokalnej w Go?

A

Domyślną wartością zmiennej lokalnej jest odpowiadająca jej wartość 0.

37
Q

Jaka jest domyślna wartość zmiennej globalnej w Go?

A

0

38
Q

Jaka jest domyślna wartość zmiennej wskaźnikowej w Go?

A

W języku programowania Go wskaźnik jest inicjowany na nil.

39
Q

Jak sprawdzić typ zmiennej w czasie wykonywania w języku programowania Go?

A

W języku programowania Go istnieje specjalny rodzaj przełącznika, który służy do sprawdzania typu zmiennej w czasie wykonywania. Ten przełącznik jest określany jako przełącznik typu.

40
Q

Czy zaleca się używanie zmiennych globalnych w programie, który implementuje procedury go?

A

Zmienne globalne nie są zalecane, ponieważ mogą uzyskać do nich dostęp jednocześnie wiele procedur go (wątków), co może łatwo prowadzić do nieoczekiwanego zachowania powodującego arbitralne wyniki.

41
Q

Co wiesz o programowaniu modułowym?

A

Programowanie modułowe to sposób na podzielenie programu na podprogramy (moduły/funkcje) w celu osiągnięcia maksymalnej wydajności.

Bardziej ogólne definicje funkcji ułatwiają ponowne użycie funkcji, takich jak wbudowane funkcje biblioteczne.