Multiline Strings — Basic Usage

DEX455 - 编写 Apex 代码:数据类型、集合、变量与运算符完全参考

📄 第 81 页 🎬 视频课程

课程章节介绍

同学们,今天咱们来看Apex中一个很方便的写法——多行字符串。 平时我们写字符串,都是用一对单引号括起来,内容只能写在一行里,稍微长一点就得拼拼接接,很麻烦。Apex现在支持用,三个单引号,来包裹一段文本,这样你就可以直接在代码里写好几行的内容,非常直观。 这种多行字符串有几个重要的特性,我一个一个给你讲。 首先,它会把你在代码里写的标点符号、空格、缩进,基本原样保留。不过,Apex编译器会聪明地帮你清理掉多余的空白,具体规则是这样的:它会找出整个字符串里,最靠左的非空白字符,,然后以那个位置为基准,把每一行开头多余的空白都去掉;同时,每一行末尾的多余空格也会被自动删除。这样,即使你在代码里为了美观写了一大堆缩进,也不会影响字符串真正的内容,比如: ```apex String poem = ''' 春眠不觉晓, 处处闻啼鸟。 '''; System.debug(poem); ``` 实际字符串会变成“春眠不觉晓,\n处处闻啼鸟。”,前面那八个空格缩进全都被剥掉了,只保留行与行之间的换行。代码里的断行会自动变成新行序列,也就是咱们说的换行符。 另外,要注意这个空白剥离的时机:它是在,编译期间,发生的,而且排在处理反斜杠转义序列,之前,。换句话说,Apex先把多余的缩去掉,然后再去解释像`\n`、`\t`这类转义字符。所以你完全可以在多行字符串里继续使用转义符,比如`\n`表示换行,`\'`表示单引号,规则和普通字符串一样。 最后说一下单引号的使用。因为整个字符串是用三个单引号包起来的,所以里面的,普通单引号根本不需要转义,,你直接写就行,例如: ```apex '''He said, "It's a secret."''' ``` 这完全合法。但有一个小例外:如果你想让字符串,在末尾出现单引号,,而且它正好紧挨着结束的三个引号,那就必须转义,不然编译器会误以为字符串提前结束了。比如你要输出`Hello'`然后紧跟着结束,就得写成: ```apex '''Hello\'''' ``` 或者 ```apex '''Hello'\'''' ``` 简单来说,只要你的单引号不直接触碰到右边三个引号,就不用管它;触碰了,就加个反斜杠。 好,多行字符串就讲到这里。这个特性在处理长文本、SQL查询或者JSON模板的时候特别有用,以后你会经常见到它。有什么疑问随时提出来。

关键词

Apex Salesforce Developer Guide