type User struct{
Name string
NeedName string
}
one := User{
Name: "somename",
NeedName: func() string {
//这里我想获取上面Name的值
return ""
}(),
}
请问这个可以获取吗?可以的话怎么写的
先感谢一下@kumfo大佬回答
其实这个问题是想偷懒一下,奇怪代码的心路历程在下面
衍生问题是:golang有没有类似JS this.Name 这样获取值的办法
func main() {
// 正常写法
user := User{}
user.Name = "somename"
// 需要根据user.Name构建NeedName
user.NeedName = needName(user.Name)
// 偷懒:
//1. 下面的needName函数就这一个地方使用,不想单独写
user.NeedName = func(s string) string {
//some code
return ""
}(user.Name)
//2. 不想写很多 user.xx = xx, 所以直接 ‘大成代码’
user1 := User{
Name: "somename",
NeedName: func() string {
//some code
// JS: name = this.Name
return ""
}(),
}
}
func needName(s string) string {
// some code with s
return ""
}
感谢浏览,欢迎回答
你这是什么奇奇怪怪的操作啊,不知道你哪里带来的语法习惯。正常的代码应该是这样子的: