Dart中//、///、#三种注释方式的区别是什么?
你在Flutter项目里见到的三种注释分属两类使用场景,具体区别如下:
Dart代码注释(Flutter业务逻辑层使用)
1. // 单行普通注释
- 属于Dart原生语法的普通单行注释,仅作用于当前行
- 仅给开发人员查看,不会被IDE智能提示识别、也不会被
dartdoc文档生成工具收录 - 适用场景:临时逻辑备注、调试标记、代码片段禁用说明等
- 示例:
// 临时屏蔽下方上报逻辑,待接口稳定后放开 // Analytics.instance.reportPaySuccess(orderId);
2. /// 文档注释
- 属于Dart官方推荐的API文档专用注释,支持单行、多行书写
- 会被IDE识别,鼠标悬浮到对应的类、方法、属性上时会直接显示注释内容;也支持被
dartdoc工具提取生成项目API文档 - 注释内部支持Markdown语法,可以写参数说明、代码示例、版本标记等内容
- 适用场景:给公共类、公共方法、全局常量、通用组件等对外暴露的API写说明
- 示例:
/// 根据用户ID获取用户昵称 /// /// [uid] 目标用户的唯一ID,无默认值,不能为空 /// 返回值为用户昵称字符串,如果用户不存在返回空字符串 String getNickname(String uid) { return userMap[uid] ?? ''; }
项目配置文件注释
3. # 配置文件单行注释
- 不属于Dart语法,不能在
.dart代码文件中使用,否则会触发语法报错 - 是YAML、ENV等配置文件的标准注释语法,在Flutter项目的
pubspec.yaml、analysis_options.yaml、.env等配置文件中生效 - 适用场景:给依赖配置、环境变量、静态资源配置等加说明
- 示例:
dependencies: flutter: sdk: flutter # 网络请求库,官方推荐使用 dio: ^5.4.0
内容的提问来源于stack exchange,提问作者Chevelev Philippe
相关产品推荐
相关产品推荐

