在Java中,注解(Annotation)无处不在:依赖注入、路由配置、权限验证……一个@Autowired或@GetMapping就能搞定复杂功能。这让很多从Java转向Go的开发者忍不住发问:Go为什么没有这么方便的特性?
先明确一个概念:Go有标签(Tag),但这不是真正意义上的注解。
// Go的标签只是结构体字段的元数据
type User struct {
Name string `json:"name" validate:"required"`
}
// Java注解则功能强大得多
@RestController
@RequestMapping("/api")
public class UserController {
@GetMapping("/users")
public List<User> getUsers() {
// ...
}
}