这取决于。
当为 Web 编译时,限制是允许的 JSString长度。检查一下,Chrome 似乎对字符串长度有 0x1FFF_FFE8 限制,Firefox 使用 0x3FFF_FFFE。
在 Dart 原生 VM 上,限制是内存(以及整数的大小,但到目前为止,64 位整数不能成为当代硬件上的限制因素。在任何当前的 64 位硬件上,实际上不可能拥有 2^64 字节的内存。位架构。)在尝试将长度为 0x4_0000_0000 (16 Gb) 的字符串加倍后,我遇到了“堆空间耗尽”错误。那时代码已经相当慢了,这并不奇怪,因为计算机“仅”有 32 Gb 的物理内存。
如果使用32位VM,内存限制肯定会更低。