首页 > 解决方案 > Flutter/Dart 中单引号和双引号的区别

问题描述

我知道单引号和双引号在 Dart 中至少具有某种程度的等价性。例如,

var myString = "Hello world";      // double quotes

var myString = 'Hello world';      // single quotes

据我所知,没有程序上的差异。

我一直看到它们在各种示例和一些文档中似乎可以互换使用。我想知道是否有我遗漏的细微差别,或者是否有推荐的风格可以遵循,尤其是在 Flutter 中。

这是阅读 Flutter 和 Dart 风格指南后的问答自我回答。

标签: stringdartflutter

解决方案


单引号和双引号都可以在 Dart 中使用

final myString = 'hello';

是相同的

final myString = "hello";

分隔符需要转义

使用\反斜杠转义单引号字符串中的单引号。

final myString = 'Bob\'s dog';            // Bob's dog

在双引号字符串中转义双引号也是如此。

final myString = "a \"quoted\" word";     // a "quoted" word

但如果分隔符不同,则无需转义。

final myString = "Bob's dog";             // Bob's dog
final myString = 'a "quoted" word';       // a "quoted" word

也无需担心传入内插字符串的值。

final value = '"quoted"';                 // "quoted"
final myString = "a $value word";         // a "quoted" word

更喜欢 Flutter 中的单引号

Flutter 风格指南建议对所有内容使用单引号

final myString = 'hello';

嵌套字符串除外

print('Hello ${name.split(" ")[0]}');

或包含单引号的字符串(可选)

final myString = "Bob's dog";
final myString = 'Bob\'s dog';  // ok

Dart 风格指南似乎对这个问题保持沉默。


推荐阅读