В чем разница между типами "string" и "func () string"? - PullRequest
0 голосов
/ 17 января 2019

Я очень новичок в программировании в целом, не говоря уже о Go ... в настоящее время я экспериментирую с подачей некоторого контента через HTTP, и [по причинам] у меня есть строка, которую я хочу сохранить в отдельном пакете, и обработать ее вернуться к моему основному проекту через вызов функции. однако я получаю сообщение об ошибке (в различных формах в зависимости от того, как я изменяю код):

"строка несоответствующих типов и строка func ()"

вот пакет 'data'

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

... тогда основной код, называющий его

package main
import ( 
 "./encodedjs" 
)
func main() {
 js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS
}

Ответы [ 3 ]

0 голосов
/ 17 января 2019

string - это string, а func() string - это функция, которая возвращает string. Мне кажется, что encodedjs.ReadEncodedJS является последним, и чтобы получить string, который он возвращает, вы должны написать encodedjs.ReadEncodedJS().

0 голосов
/ 17 января 2019

Меня раздражает, что я забыл, что хотел получить возвращаемый результат функции и должен был добавить в конце скобку null () ... Я имею в виду, что работал над этим смущающе долго, чтобы этого никогда не былощелкнуть в моей голове ... и он сидит прямо рядом с другими правильными вызовами функций буквально перед моим лицом.

0 голосов
/ 17 января 2019

Квалифицированный идентификатор encodedjs.ReadEncodedJS просто обозначает функцию, если используется как есть, это просто значение функции (например, может быть присвоено переменным того же типа функции).

Если вы хотите вызвать его и использовать его возвращаемое значение, используйте скобки, например encodedjs.ReadEncodedJS().Это подробно описано в Spec: Calls .

Поскольку вы хотите объединить string значений, вы должны вызвать его:

js := "some text to simply show one way I've tried" + encodedjs.ReadEncodedJS()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...