Ich bin sehr neu in der Programmierung im Allgemeinen, geschweige denn im Go ... Derzeit habe ich experimentiert, einige Inhalte über HTTP bereitzustellen, und [aus Gründen] habe ich eine Zeichenfolge, die ich in einem separaten Paket speichern und an meine zurückgeben möchte Hauptprojekt über einen Funktionsaufruf. Es wird jedoch eine Fehlermeldung angezeigt (in verschiedenen Formen, je nachdem, wie ich den Code ändere):

"Nicht übereinstimmende Typen string und func () string"

Hier ist das 'Daten'-Paket

package encodedjs
var base64EncodedJS string
func ReadEncodedJS() string {
 return base64EncodedJS
}
func init() {
 base64EncodedJS = "data:text/javascript;base64,largestring_blah_blah_blah=="
}

... dann der Hauptcode, der es aufruft

package main
import ( 
 "./encodedjs" 
)
func main() {
 js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS
}
-4
JWD42 17 Jän. 2019 im 19:59

3 Antworten

Beste Antwort

Die encodedjs.ReadEncodedJS qualifizierte Kennung bezeichnet nur die Funktion, wenn sie unverändert verwendet wird ist nur ein Funktionswert (kann zB Variablen desselben Funktionstyps zugeordnet werden).

Wenn Sie es aufrufen und seinen Rückgabewert verwenden möchten, verwenden Sie Klammern, z. encodedjs.ReadEncodedJS(). Dies wird in Spezifikation: Anrufe beschrieben.

Da Sie string -Werte verketten möchten, müssen Sie Folgendes aufrufen:

js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS()
2
icza 17 Jän. 2019 im 17:04

string ist ein string und func() string ist eine Funktion, die ein string zurückgibt. Sieht für mich so aus, als ob encodedjs.ReadEncodedJS das letztere ist. Um das string zu erhalten, das es zurückgibt, würden Sie encodedjs.ReadEncodedJS() schreiben.

1
cholz 17 Jän. 2019 im 17:04

Ich bin irritiert, dass ich vergessen habe, dass ich das zurückgegebene Ergebnis der Funktion haben wollte und am Ende die Klammer null () hätte einfügen sollen ... Ich meine, ich habe eine peinlich lange Zeit daran gearbeitet, um diesen Klick nie in meinem zu haben Kopf ... und es sitzt direkt neben anderen korrekten Funktionsaufrufen buchstäblich vor meinem Gesicht.

0
JWD42 17 Jän. 2019 im 18:18