Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

跳脫字元

本集目標

學會用反斜線 \ 在字串裡插入換行、tab 等特殊字元。

正文

有時候你想在字串裡面放一些「特殊」的東西,比如換行、tab、或者雙引號本身。這時候就需要跳脫字元(escape character)。

\n —— 換行

fn main() {
    println!("第一行\n第二行");
}

\n 就是告訴 Rust:「這裡換一行。」它不會真的印出 \n 這兩個字,而是產生一個換行的效果。

\t —— tab

fn main() {
    println!("名字\t分數");
    println!("小明\t85");
    println!("小華\t92");
}

\t 會插入一個 tab 空間。

\\ —— 反斜線本身

如果你想印出反斜線 \ 本身呢?因為 \ 已經被拿來當跳脫字元的開頭了,所以要用兩個反斜線:

fn main() {
    println!("檔案路徑:C:\\Users\\Andy");
}

\" —— 雙引號

字串是用 " 包起來的,那如果字串裡面要有 " 呢?

fn main() {
    println!("他說:\"你好!\"");
}

\" 告訴 Rust:「這個雙引號是字串內容,不是字串的結尾。」

char 裡使用

跳脫字元在 char 裡面也能用:

fn main() {
    let newline: char = '\n';
    let tab: char = '\t';
    let backslash: char = '\\';

    print!("A{}B{}C{}", newline, tab, backslash);
}

\' —— 單引號

在 char 裡面,如果你想表示單引號本身,就要跳脫:

fn main() {
    let quote: char = '\'';
    println!("{}", quote);
}

因為 char 是用 ' 包起來的,所以裡面要放 ' 就得用 \'

不需要跳脫的情況

在字串("")裡面,單引號不需要跳脫,可以直接用:

fn main() {
    println!("It's a test"); // ' 在字串裡不用跳脫
}

同樣地,在 char('')裡面,雙引號也不需要跳脫:

fn main() {
    let c: char = '"'; // " 在 char 裡不用跳脫
    println!("{}", c);
}

簡單來說:包在外面的那個符號才需要跳脫,另一個不用。

一覽表

跳脫字元效果
\n換行
\ttab
\\反斜線 \
\"雙引號 "
\'單引號 '

重點整理

  • 跳脫字元用 \ 開頭,代表特殊字元:\n(換行)、\t(tab)、\\(反斜線)
  • \" 在字串裡表示雙引號本身,\' 在 char 裡表示單引號本身
  • 跳脫字元在字串和 char 裡都能使用
  • 規則:包在外面的那個符號才需要跳脫,另一個不用