new wings

プログラミングを始めたので、感想を書いてくと思います

生文字列というもの

C# でいうところの @ に続く文字列。いろいろまとめてエスケープできるあれである。

どうやら「生文字列」だとか「raw string literal」と呼ばれるものらしい。

他の言語ではどうやって書くのか、そもそもこれはどういうカテゴリ、ジャンル、呼び方をされているものなのか。これがなかなか検索しにくかった。

以下、str0str1 は同じ。str0 が raw string literal で書いたもの。str1エスケープが必要な文字を一つずつエスケープして書いたもの。

C# における raw string literal

// @"ここに書く";

string str0 = @"(C:\Users\UserName\Desktop)";
string str1 = "C:\\Users\\UserName\\Desktop";

C++ における raw string literal

// R"(ここに書く)";

char str0[] = R"(C:\Users\UserName\Desktop)";
char str1[] = "C:\\Users\\UserName\\Desktop";

参考: 生文字列リテラル

javascript における raw string literal

javascript の場合にはテンプレートリテラルと呼ばれるらしい。

// String.raw`ここに書く`

var str0 = String.raw`C:\Users\UserName\Desktop`;
var str1 = 'C:\\Users\\UserName\\Desktop';

参考: JavaScript の テンプレートリテラル を極める!

python における raw string literal

# r"ここに書く"

str0 = r"C:\Users\UserName\Desktop"
str1 = "C:\\Users\\UserName\\Desktop"