


So greifen Sie auf Eigenschaften von Schnittstellenartparametern zu, ohne die Typen in der GO -Sprache zu verwenden?
Parameter -Attributzugriff des Golang -Schnittstellen -Schnittstellens: Vermeiden Sie Typbehandlungen
In diesem Artikel wird eingeführt, wie Sie auf die Eigenschaften von Schnittstellen -Typparametern in GO -Sprache zugreifen können, ohne sich auf Typbehauptungen zu verlassen. Der Beispielcode zeigt, dass doRun
-Funktion PhoneFoo
-Schnittstellentyp empfängt und auf os
Betriebssystemattribute IPhoneFoo
-Struktur zugreifen muss. Direkter Zugriff auf phone.os
verursacht einen Fehler, da die Schnittstelle nur Methoden definiert und keine Strukturfelder enthält.
Der ursprüngliche Code versucht direkt auf phone.os
zuzugreifen. OS, was falsch ist, da die Schnittstelle nur Methoden definiert und nicht direkt auf Felder der zugrunde liegenden Struktur zugreifen kann. Daher müssen andere Methoden verwendet werden, um auf os
Betriebssystemattribut zuzugreifen.
In diesem Artikel wird ein Reflexionsmechanismus verwendet, um dieses Problem zu lösen. Die Reflexion ermöglicht die Überprüfung und Manipulation von Objekttypen. Der verbesserte Code verwendet reflect
Paket zum Implementieren:
-
reflect.ValueOf(phone)
Erhält den reflektierten Wertphone
. - Da
phone
ein Zeiger auf dieIPhoneFoo
-Struktur ist, rufen SieElem()
-Methode an, um den Wert der Struktur selbst zu erhalten. -
v.Field(0)
erhält das erste Feld der Struktur (indexiert auf 0), dh dasos
-Feld. -
fmt.Println(os.String())
oderfmt.Println(os)
druckt den Wert desos
-Felds.os.Type()
Drucke Feldtypinformationen.
Durch Reflexion erhalten und drucken wir den os
der IPhoneFoo
-Struktur dynamisch und drucken dynamisch und vermeiden die Code -Redundanz und die Wartungsprobleme, die durch Typbehauptungen verursacht werden. Diese Methode eignet sich zum Umgang mit verschiedenen Arten von Szenarien mit gemeinsamen Schnittstellen.
Das obige ist der detaillierte Inhalt vonSo greifen Sie auf Eigenschaften von Schnittstellenartparametern zu, ohne die Typen in der GO -Sprache zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Das iPhone 17 von Apple kann ein großes Upgrade einleiten, um die Auswirkungen starker Wettbewerber wie Huawei und Xiaomi in China zu bewältigen. Laut dem digitalen Blogger @Digital Chat Sender wird die Standardversion von iPhone 17 erstmals mit einem hohen Aktualisierungsrate -Bildschirm ausgestattet, wodurch die Benutzererfahrung erheblich verbessert wird. Dieser Schritt markiert die Tatsache, dass Apple nach fünf Jahren endgültig mit der Technologie mit hoher Aktualisierungsrate an die Standardversion delegiert hat. Gegenwärtig ist das iPhone 16 das einzige Flaggschiff mit einem 60 -Hz -Bildschirm in der Preisspanne von 6.000 Yuan, und es scheint etwas hinter sich zu lassen. Obwohl die Standardversion des iPhone 17 einen hohen Aktualisierungsrate-Bildschirm aufweist, gibt es im Vergleich zur Pro-Version immer noch Unterschiede, z. Was erwähnenswert ist, ist, dass die iPhone 17 Pro -Serie eine brandneue und mehr einnehmen wird

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

Es gibt zwei Möglichkeiten, XML-Dateien anzuzeigen: Android-Telefone: Verwenden Sie Dateimanager oder Anwendungen von Drittanbietern (XML Viewer, Droidedeit). iPhone: Übertragen Sie Dateien über iCloud Drive und verwenden Sie die App-App oder die App-App-App (XML Buddha, textastisch).

Es gibt keinen integrierten XML-Viewer auf dem iPhone, und Sie können Anwendungen von Drittanbietern verwenden, um XML-Dateien wie XML Viewer, JSON Viewer zu öffnen. Methode: 1. Laden und installieren Sie den XML Viewer im App Store. 2. Ermitteln Sie die XML -Datei auf dem iPhone. 3. Drücken Sie die XML -Datei, um "Freigabe" auszuwählen. 4. Wählen Sie die installierte XML Viewer -App aus. 5. Die XML -Datei wird in der App geöffnet. Hinweis: 1. Stellen Sie sicher, dass der XML -Viewer mit der iPhone iOS -Version kompatibel ist. 2. Seien Sie vorsichtig mit der Empfindlichkeit der Fall, wenn Sie Dateipfade eingeben. 3. Seien Sie vorsichtig mit XML -Dokumenten, die externe Einheiten enthalten

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Ressourcenverwaltung in Go -Programmierung: MySQL und Redis Connect und Release, um zu lernen, wie Ressourcen korrekt verwaltet werden, insbesondere mit Datenbanken und Caches ...

Go Language funktioniert gut beim Aufbau effizienter und skalierbarer Systeme. Zu den Vorteilen gehören: 1. hohe Leistung: Kompiliert in den Maschinencode, schnelle Laufgeschwindigkeit; 2. gleichzeitige Programmierung: Vereinfachen Sie Multitasking durch Goroutinen und Kanäle; 3. Einfachheit: präzise Syntax, Reduzierung der Lern- und Wartungskosten; 4. plattform: Unterstützt die plattformübergreifende Kompilierung, einfache Bereitstellung.
