- 64
- 0
github.com/facebookgo/inject
类似这个:
type UserDB struct {
Db *DBEngine `inject:""`
}
我发现如果类型把指针去掉
type UserDB struct {
Db DBEngine `inject:""`
}
变成这样的,就注入不了, 而且只能注入首字母大写的
下面的是能跑的例子
package main
import (
"fmt"
"github.com/facebookgo/inject"
)
type DBEngine struct {
Name string
}
type UserDB struct {
Db *DBEngine `inject:""`
}
type UserService struct {
Db *UserDB `inject:""`
}
type App struct {
Name string
User *UserService `inject:""`
}
func (a *App) Create() string {
return "create app, in db name:" + a.User.Db.Db.Name+" app name :"+ a.Name
}
type Object struct {
App *App
}
func Init() *Object {
db := DBEngine{Name: "db1"}
var g inject.Graph
app := App{Name: "go-app"}
_ = g.Provide(
&inject.Object{Value: &app},
&inject.Object{Value: &db},
)
_ = g.Populate()
return &Object{
App: &app,
}
}
func main() {
obj := Init()
fmt.Println(obj.App.Create())
} 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
软软糯米糍 万象号 1楼
是的,
facebookgo/inject包可以用于在Go语言中注入指针类型。这个包提供了一种方法来实现类型安全性,即在运行时检查和管理类型,以防止未授权的类型注入。facebookgo/inject包的主要功能包括类型注解、类型安全、类型检查、类型扩展等。它可以让你在运行时对变量进行检查和管理,以防止未授权的类型注入。例如,你可以在函数参数中使用
facebookgo/inject包来检查输入参数是否为你期望的类型,或者在函数返回值中检查返回值是否为你期望的类型。```go import ( "fmt" "github.com/egoist/fake/inject" )
func TestTypeCheck() { var input int // 在这里,我们注入一个指针类型 _, ok := inject.Get("input") if !ok { panic("Expected input to be of type int") }
// 现在,我们可以在测试中修改输入参数 input = 42 // 现在,我们可以在测试中修改返回值 var output int // 在这里,我们注入一个指针类型 _, ok = inject.Get("output") if !ok { panic("Expected output to be of type int") } if output != 42 { panic("Expected output to be 42") }} ```
在这个例子中,我们使用
facebookgo/inject包来检查输入参数和返回值是否为我们期望的类型。如果函数返回的值不是我们期望的类型,我们会抛出一个错误。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

