Ich werde kurz die Schnipsel zusammenfassen, die ich persönlich beim Programmieren mit Go verwende. Es gibt verschiedene Arten, von denen, die sehr oft verwendet werden, bis zu denen, die nur gelegentlich verwendet werden. Es sieht so aus, als ob es verwendet werden kann! !! !! Ich würde mich freuen, wenn Sie nur die vorstellen könnten, die Sie gedacht haben!
Zunächst werde ich kurz vorstellen, wie Snippets bei vscode registriert werden Code -> Preferences -> User Snippets ↓ Dann erscheint ein Bildschirm wie dieser, also klicken Sie auf "Los" ↓ Dann wird die folgende JSON-Datei angezeigt. Es ist also so, als würde man das Snippet hinzufügen, das Sie dort verwenden möchten
Die Snippet-Registrierung kann mit der folgenden Syntax erfolgen
python
"Snippet-Titel": {
"prefix": "Welche Art von Zeichen sollte als prädiktive Konvertierung eingegeben werden?",
"body": [
"Welche Art von Zeichenfolge sollte ausgegeben werden?",
"Wenn Sie ein Unternehmen eröffnen möchten, können Sie es öffnen, indem Sie es durch Kommas wie dieses getrennt eingeben",
],
"description": "Ausführliche Erklärung"
},
Sie können auch entscheiden, wo der Cursor gehalten werden soll, indem Sie nach Eingabe des Snippets das Zeichen "$ 1" eingeben. Zum Beispiel, wenn Sie das folgende Snippet erstellen
python
"Print to console": {
"prefix": "fff",
"body": ["fmt.Printf(\"==========%#v\\n\", $1)"],
"description": "Protokollieren Sie, um die Bewegung zu überprüfen"
},
Nach der Verwendung von Snippet
python
fmt.Printf("==========%#v\n", )
//↑ Der Cursor kommt hierher
Wird kommen, um zu sagen
Zeichen, das Sie einfügen möchten | Einfügen |
---|---|
$ | \\$ |
Tab | \t |
Doppeltes Zitat | " |
Einfaches Zitat | ' |
Dies ist ein Druck zum Debuggen. Es wird häufig verwendet, um den Inhalt der Struktur zu überprüfen und den Ort des Fehlers zu identifizieren.
python
"Print to console": {
"prefix": "fff",
"body": ["fmt.Printf(\"==========%#v\\n\", $1)"],
"description": "Protokollieren Sie, um die Bewegung zu überprüfen"
},
↓ fff
python
fmt.Printf("==========%#v\n", )
Ich habe es erstellt, weil es zu ärgerlich ist, beim Erstellen einer Strukturmethode Klammern einzugeben. Ich persönlich benutze das auch
python
"func": {
"prefix": "fc",
"body": ["func ($1) $2($3)($4){", "\t$0", "}"],
"description": "Erstellen Sie eine Funktion für struct"
},
↓fc
python
func () ()(){
}
package Geben Sie einfach "package" aus Es ist überraschend einfach!
python
"package": {
"prefix": "pac",
"body": "package",
"description": "Ich möchte nicht einmal ein "Paket" schreiben"
},
↓pac
python
package
Es wird sofort eine Vorlage für einen tabellengesteuerten Test erstellt. Es ist ziemlich ärgerlich, jedes Mal von 0 zu schreiben, also habe ich es ungefähr zuerst damit gemacht (Für einen tabellengesteuerten Test klicken Sie hier](https://qiita.com/takehanKosuke/items/cbfc88c4b7956adede79))
python
"test func": {
"prefix": "fct",
"body": [
"func Test$1(t *testing.T) {",
"\tt.Parallel()",
"\tasserts := assert.New(t)",
"\ttests := []struct{",
"\t\tname string",
"\t\tinput string",
"\t\toutput string",
"\t}{",
"\t\t{",
"\t\t\tname: \"\",",
"\t\t\tinput: \"\",",
"\t\t\toutput: \"\",",
"\t\t},",
"\t}",
"\tfor _, td := range tests {",
"\t\ttd := td",
"\t\tt.Run(fmt.Sprintf(\"$1: %s\", td.name), func(t *testing.T) {",
"\t\t})",
"\t}",
"}"
],
"description": "Tabelle Testbasis"
},
↓fct
python
func Test(t *testing.T) {
t.Parallel()
asserts := assert.New(t)
tests := []struct{
name string
input string
output string
}{
{
name: "",
input: "",
output: "",
},
}
for _, td := range tests {
td := td
t.Run(fmt.Sprintf(": %s", td.name), func(t *testing.T) {
})
}
}
gomock Dies ist ein Befehl, den Sie definitiv in gomock schreiben werden, einer Scheinbibliothek, die häufig in go verwendet wird. Es ist nützlich, weil man leicht vergisst, wie man es zeichnet.
python
"Gomock template": {
"prefix": "tgomock",
"body": [
"//Gomock-Einstellungen",
"ctrl := gomock.NewController(t)",
"defer ctrl.Finish()"
],
"description": "Erstellen Sie ginContext zum Testen"
},
↓tgomock
python
//Gomock-Einstellungen
ctrl := gomock.NewController(t)
defer ctrl.Finish()
Dies ist ein Ausschnitt, der beim Schreiben eines Tests verwendet wird, der einen Gin-Kontext mit Gin enthält. Dies ist ein Framework von go (siehe hier für Details).
python
"test gin Context": {
"prefix": "tgincontext",
"body": [
"//Generieren eines Gin-Kontexts für den Test",
"ginContext, _ := gin.CreateTestContext(httptest.NewRecorder())",
"req, _ := http.NewRequest(\"GET\", \"/\", nil)",
"//req.Header.Add(\"Authorization\", td.inputHeader)",
"//req.Header.Add(\"Authorization\", td.inputHeader)",
"ginContext.Request = req"
],
"description": "Anfängliche feste Phrase für Gomock"
},
↓tgincontext
python
//Generieren eines Gin-Kontexts für den Test
ginContext, _ := gin.CreateTestContext(httptest.NewRecorder())
req, _ := http.NewRequest("GET", "/", nil)
//req.Header.Add("Authorization", td.inputHeader)
//req.Header.Add("Authorization", td.inputHeader)
ginContext.Request = req
Dies ist ein Snippet, das beim Überspringen von http-Anforderungen mit go verwendet wird. Es ist leicht zu vergessen, wie man Header und Parameter hinzufügt, deshalb erinnere ich mich immer daran, dies verwendet zu haben.
python
"HTTP GET request": {
"prefix": "httpget",
"body": [
"url := \"\"",
"req, err := http.NewRequest(\"GET\", url, nil)",
"if err != nil{",
"\treturn nil, err",
"}",
"//Header",
"req.Header.Add(\"\", \"\")",
"//Parameter abfragen",
"params := req.URL.Query()",
"params.Add(\"\",\"\")",
"req.URL.RawQuery = params.Encode()"
],
"description": "HTTP GET request"
}
↓httpget
python
url := ""
req, err := http.NewRequest("GET", url, nil)
if err != nil{
return nil, err
}
//Header
req.Header.Add("", "")
//Parameter abfragen
params := req.URL.Query()
params.Add("","")
req.URL.RawQuery = params.Encode()
Persönlich sind Snippets feste Phrasen, aber viele von ihnen sind für Dinge gemacht, die dazu neigen, detaillierte Einstellungsmethoden zu vergessen. Ich denke, ich werde dies in Zukunft oft verwenden! Ich möchte nach Bedarf weitere Informationen hinzufügen!
Recommended Posts