同一パッケージであればグローバル変数などで値を渡すことができますが、hoge.Fuga()となっているということは別のパッケージなんですね。
go
1http.HandleFunc("/hoge", func(w http.ResponseWriter, r *http.Request) {
2 hoge.Fuga(w, r, Val)
3})
ファーストオブジェクトであるためこのようなことができます。
hoge.Fuga関数は自己で定義したものですよね。定義自体を変える必要があるかと思います。
他にもhttp.Handlerインターフェースを実装した構造体を定義して、その値を予め書き換えることで値を渡すことができます。
go
1package hoge
2
3type MyHandler struct {
4 Val string
5}
6func (mh *MyHandler)ServeHTTP(w ResponseWriter, r *Request){
7 // 処理
8}
9var Fuga = MyHandler{}
10
go
1package main
2
3import (
4 "hoge"
5 "net/http"
6)
7
8func main(){
9 http.Handle("/hoge", hoge.Fuga)
10 http.ListenAndServe(":80", nil)
11}
動作確認をしていないので動作はうまく行かないと思いますが、似たような状態で動作するかと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/06/16 03:22
2017/06/16 11:25
退会済みユーザー
2017/06/25 00:28