You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart/Flutter中数字前的.符号是什么含义?

Dart/Flutter中数字前置.符号的语法说明

这种写在数字前的.是Dart浮点数字面量的标准语法糖,没有特殊黑魔法,.59就是0.59的简写。

具体语法规则

  • 仅适用于double类型的字面量:当浮点数的整数部分为0时,可以省略整数位的0,直接以.开头拼接小数部分,编译器会自动补全整数位的0,最终解析为0.xxx的双精度浮点数。
  • 两种写法完全等价:写.59和写0.59在编译后没有任何区别,运行时行为、性能、精度完全一致。
  • 存在明确的使用边界:
    • 该语法仅对数字字面量生效,不能用在变量、表达式上,类似.变量名的写法会直接触发语法错误。
    • 不能省略小数点后的有效数字,单独写.、或者0.这类缺省小数部分的写法,都不符合Dart语法规范,会编译报错。

代码示例

你问题中给出的代码:

double width = .59 * MediaQuery.of(context).size.width;

和下面的写法100%等价:

double width = 0.59 * MediaQuery.of(context).size.width;

合法/非法写法对比

合法写法:

  • .0 → 等价于0.0
  • .999 → 等价于0.999
  • .1415926 → 等价于0.1415926

非法写法:

  • .:缺失小数部分,语法错误
  • 5.:缺失小数部分,Dart不支持省略浮点字面量的小数位,语法错误
  • .round():此处.会被识别为方法调用操作符,而非浮点字面量的组成部分,语法错误

内容的提问来源于stack exchange,提问作者adiv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 08:24:15