gpt4 book ai didi

go - 如何在函数中将字符串值转换为自定义类型

转载 作者:行者123 更新时间:2023-12-01 22:10:38 25 4
gpt4 key购买 nike

我已经编写了一个角色检查功能:

...
role = "roles/cloudkms.publicKeyViewer"
func checkRole(key, serviceAccount, role string) bool {
...
return policy.HasRole(serviceAccount, role)
}
然后,我在policy.HasRole的参数中收到错误“无法将角色(类型字符串)用作类型” cloud.google.com/go/iam”。RoleName。
将角色值转换为自定义类型的正确方法是什么?
The library:
// A RoleName is a name representing a collection of permissions.
type RoleName string

// Common role names.
const (
Owner RoleName = "roles/owner"
Editor RoleName = "roles/editor"
Viewer RoleName = "roles/viewer"
)

const (
// AllUsers is a special member that denotes all users, even unauthenticated ones.
AllUsers = "allUsers"

// AllAuthenticatedUsers is a special member that denotes all authenticated users.
AllAuthenticatedUsers = "allAuthenticatedUsers"
)


// HasRole reports whether member has role r.
func (p *Policy) HasRole(member string, r RoleName) bool {
return memberIndex(member, p.binding(r)) >= 0
}

最佳答案

您可以按如下方式使用类型转换:

return policy.HasRole(serviceAccount, iam.RoleName(role))
或更简单地通过将角色声明为 iam.RoleName
func checkRole(key, serviceAccount, role iam.RoleName) bool {
...
return policy.HasRole(serviceAccount, role)
}

关于go - 如何在函数中将字符串值转换为自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63952481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com