php-Editor Yuzai zeigt Ihnen, wie Sie die Slice-Länge im Strukturfeld berechnen. In der Programmierung ist eine Struktur eine Datenstruktur, die zum Organisieren zusammengehöriger Daten verwendet wird. In einigen Fällen müssen wir möglicherweise die Slice-Länge im Strukturfeld berechnen, um entsprechende Vorgänge im Programm auszuführen. Die Berechnung der Schnittlänge eines Strukturfelds kann uns helfen, Daten besser zu verstehen und zu verarbeiten sowie die Effizienz und Genauigkeit des Programms zu verbessern. Als nächstes erläutern wir die Durchführung der Berechnung im Detail und geben entsprechende Beispiele.
Ich glaube, ich brauche eine bessere Lösung als die Groß-/Kleinschreibung, da die Struktur mehr Felder erhält und meine Funktion ausführlicher wird. Gibt es eine Möglichkeit, meinen Schalter auf Schleife umzustellen?
Ich habe den folgenden Code
type things struct { streetnames []string `json:"streetnames"` letters []string `json:"letters"` malenames []string `json:"malenames"` } func checkcategories(data *things, filepath string) error { errmsg := "list has no values or is a missing category in file: " + filepath categories := []string{"street_name", "letter", "male_first_name"} for _, value := range categories { switch value { case "street_name": if len(data.streetnames) == 0 { return errors.new("street_name " + errmsg) } case "letter": if len(data.letters) == 0 { return errors.new("letter " + errmsg) } case "male_first_name": if len(data.malenames) == 0 { return errors.new("male_first_name " + errmsg) } } } return nil }
Das funktioniert bei mir, aber die tatsächliche Struktur enthält 12 Felder, was meine Funktion langwierig und repetitiv macht.
Ich habe es versucht
for _, value := range categories { if len("data." + value) == 0 { return errors.New(value + errMsg) }
Aber als ich den Code ausführte, brauchte ich einen Moment, um zu bemerken, dass er nicht wie erwartet funktionierte, ich bekam die Länge der Zeichenfolge. Ich habe data[value] ausprobiert, aber das funktioniert auch nicht.
Gibt es eine Möglichkeit, meinen Schalter auf Schleife umzustellen?
Sie können Folgendes tun:
type Things struct { StreetNames []string `json:"streetNames"` Letters []string `json:"letters"` MaleNames []string `json:"maleNames"` } func CheckCategories(data *Things, filePath string) error { errMsg := "list has no values or is a missing category in File: " + filePath categories := []struct{ name string slice []string }{ {"street_name", data.StreetNames}, {"letter", data.Letters}, {"male_first_name", data.MaleNames}, } for _, v := range categories { if len(v.slice) == 0 { return errors.New(v.name + " " + errMsg) } } return nil }
Das obige ist der detaillierte Inhalt vonBerechnen Sie die Scheibenlänge im Strukturfeld. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!