为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕娘9325324 2022-06-27 17:33:37
我编写了一个用于角色检查的函数:...role = "roles/cloudkms.publicKeyViewer"func checkRole(key, serviceAccount, role string) bool {...return policy.HasRole(serviceAccount, role)}然后我收到错误“不能在 policy.HasRole 的参数中使用角色(类型字符串)作为类型“cloud.google.com/go/iam”.RoleName。将角色值转换为自定义类型的正确方法是什么?图书馆:// 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}
查看完整描述

1 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

您可以使用类型转换,如下所示:


return policy.HasRole(serviceAccount, iam.RoleName(role))

或者通过将角色声明为更简单iam.RoleName


func checkRole(key, serviceAccount, role iam.RoleName) bool {

...

   return policy.HasRole(serviceAccount, role)

}


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号