Uczę się Go, ale wydaje mi się, że to trochę denerwujące, że podczas kompilacji nie powinienem pozostawiać żadnej zmiennej lub pakietu nieużywanych.
To naprawdę mnie spowalnia. Na przykład chciałem tylko zadeklarować nowy pakiet i planować użyć go później lub po prostu odkomentować jakieś polecenie do przetestowania. Zawsze pojawia się błąd i muszę komentować wszystkie te zastosowania.
Czy jest jakiś sposób na uniknięcie tego rodzaju odprawy w Go?
Odpowiedzi:
Ten błąd zmusza Cię do napisania lepszego kodu i upewnij się, że używasz wszystkiego, co deklarujesz lub importujesz. Ułatwia to odczytywanie kodu napisanego przez inne osoby (zawsze masz pewność, że zostaną użyte wszystkie zadeklarowane zmienne) i unikniesz możliwego martwego kodu.
Ale jeśli naprawdę chcesz pominąć ten błąd, możesz użyć pustego identyfikatora (
_
):staje się
Jak powiedział kostix w komentarzach poniżej, oficjalne stanowisko zespołu Go można znaleźć w FAQ :
źródło
Możesz użyć do tego prostej „funkcji zerowej”, na przykład:
Którego możesz użyć tak:
Jest do tego również pakiet, więc nie musisz za
Use
każdym razem definiować funkcji:źródło
Zgodnie z FAQ :
Niekoniecznie się z tym zgadzam z różnych powodów, w które nie warto wchodzić. Tak właśnie jest i prawdopodobnie nie zmieni się w najbliższej przyszłości.
W przypadku pakietów istnieje
goimports
narzędzie, które automatycznie dodaje brakujące pakiety i usuwa nieużywane. Na przykład:Powinieneś być w stanie uruchomić to z dowolnego w połowie przyzwoitego edytora - na przykład dla Vima:
Na
goimports
stronie znajduje się lista niektóre polecenia dla innych redaktorów i zazwyczaj ustawić go uruchomić automatycznie po zapisaniu bufora na dysk.Pamiętaj, że
goimports
będzie również działaćgofmt
.Jak już wspomniano, w przypadku zmiennych najłatwiej jest (tymczasowo) przypisać je do
_
:źródło
Jednym z niewymienionych jeszcze kątów są zestawy narzędzi używane do edycji kodu.
Używanie Visual Studio Code wraz z wywoływanym rozszerzeniem od lukehoban
Go
zrobi dla ciebie auto-magię. Rozszerzenie Go uruchamia się automatyczniegofmt
,golint
etc, i usuwa i dodajeimport
wpisy . Więc przynajmniej ta część jest teraz automatyczna.Przyznaję, że nie jest to w 100% rozwiązanie tego pytania, ale jest wystarczająco użyteczne.
źródło
W przypadku, gdy innym trudno jest to zrozumieć, myślę, że może to pomóc wyjaśnić to w bardzo prosty sposób. Jeśli masz zmienną, której nie używasz, na przykład funkcję, dla której skomentowałeś wywołanie (częsty przypadek użycia):
Możesz przypisać do funkcji niepotrzebną / pustą zmienną, aby nie była już nieużywana :
źródło