Вы отредактировали свой оригинальный вопрос, чтобы добавить второй вопрос.
Кроме того, как я могу изменить func QR на
принять значения параметров? Что бы я хотел
для этого нужно принять командную строку
флаг вместо запроса * http.Request.
Если вы прочитаете Спецификация языка программирования Go , §Типы , включая §Функции типов , вы увидите, что Go имеет строгую статическую типизацию, включая функцию типы. Хотя это не гарантирует перехвата всех ошибок, обычно оно отлавливает попытки использовать недопустимые несоответствующие сигнатуры функций.
Вы не говорите нам, почему вы хотите изменить сигнатуру функции для QR
, что выглядит произвольным и капризным образом, чтобы он больше не был действительным типом HandlerFunc
, гарантируя, что программа не сможет даже скомпилировать. Мы можем только догадываться, чего вы хотите достичь. Возможно, это так просто: вы хотите изменить http.Request
, основываясь на параметре времени выполнения. Возможно, как-то так:
// Note: flag.Parse() in func main() {...}
var qrFlag = flag.String("qr", "", "function QR parameter")
func QR(c *http.Conn, req *http.Request) {
if len(*qrFlag) > 0 {
// insert code here to use the qr parameter (qrFlag)
// to modify the http.Request (req)
}
templ.Execute(req.FormValue("s"), c)
}
Возможно, нет! Кто знает?