以下の1行をコードする6つの方法。
Hello
"Hello"
"""Hello"""
"""
Hello
"""
'Hello'
'''Hello'''
'''
Hello
'''
「 TOMLは、コミュニティに参加したプログラマーの考えた、ある程度 設定ファイルの書きやすい構文が わりと気軽に採用されるみたいね」
「 レア・ケースが割を食って複雑になるが、よくあるケースでは簡単……、だから多くの人には使いやすい……、という ハフマン・コーディング みたいな戦略だぜ☆」
「 お父んみたいな レア・ケース突撃するマン は口を挟むなだぜ☆」
「 じゃあ、まず ダブル・クォーテーション を含める書き方から見ていこうぜ☆?」
以下の1行をコードする6つの方法。
Say "Hello".
"Say \"Hello\"."
"""Say "Hello"."""
"""
Say "Hello".
"""
'Say "Hello".'
'''Say "Hello".'''
'''
Say "Hello".
'''
「 パターン1で "
から \"
への変化がみられるが……☆?」
「 3連続するダブル・クォーテーションだったら、どうすんの?」
以下の1行をコードする6つの方法。
a"""b
"a\"\"\"b"
"""a\"\"\"b"""
"""
a\"\"\"b
"""
'a"""b'
'''a"""b'''
'''
a"""b
'''
「 エスケープ・シーケンスにして 3連続のダブル・クォーテーションでなくせばいいんだぜ☆」
以下の3行をコードする6つの方法。
You
say
hello
"You\r\nsay\r\nhello"
"""You\r\nsay\r\nhello"""
"""
You
say
hello
"""
エスケープシーケンス無いんで無理。
エスケープシーケンス無いんで無理。
'''
You
say
hello
'''
「 次は ふつうに \
記号を表示したいケースを見てみようぜ☆?」
以下の1行をコードする6つの方法。
C:\User\Muzudho
"C:\\User\\Muzudho"
"""C:\\User\\Muzudho"""
"""
C:\\User\\Muzudho
"""
'C:\User\Muzudho'
'''C:\User\Muzudho'''
'''
C:\User\Muzudho
'''
「 設定ファイルに正規表現を書きたい、という要望から シングル・クォーテーション を使った書き方が取り入れられたぜ☆」
「 じゃあ シングル・クォーテーション を含む文字列のパターンを見せてくれだぜ☆」
以下の1行をコードする6つの方法。
It's ok.
"It's ok."
"""It's ok."""
"""
It's ok.
"""
無理。
端っこにシングル・クォーテーションが来た時の動作は怪しい。
'''It's ok.'''
'''
It's ok.
'''
「 シングル・クォーテーション を3連続で含む文字列のパターンを☆」
以下の1行をコードする6つの方法。
a'''b
"a'''b"
"""a'''b"""
"""
a'''b
"""
無理。
無理。
無理。
「 これまで見てきたパターンで、 エスケープ・シーケンス が少ないものが 人には読みやすい、 というのは 1つの指針にできると思うぜ☆」
「 その、押さえなければならない エスケープ・シーケンス って どんなけあるの?」
Controll, Quote, ... | Escape Sequence |
---|---|
Line feed | \r |
Caridge return | \n |
いろいろ | いろいろ |
\ |
\\ |
" |
\" |
' |
\' |
「 文の途中に改行があるのなら、複数行テキストにしてほしいよな☆」
Before
「あいうえお
」
After
「あいうえおr\n」
「 まず、末尾の改行は 強制的に エスケープ・シーケンス にしてしまおうぜ☆?」
// value は &str 型。
if 1 < value.lines().count() {
}
「 ↑ 改行記号を数えるのは むずかしいんで、行数を数えようぜ☆」
「 2行以上あれば、複数行のパターン3、パターン6のどちらかに確定だな☆」
Pettern 3
"""
あ
い
う
"""
Pettern 6
'''
あ
い
う
’’’
「 ここで、3連シングル・クォーテーションが含まれるなら パターン3 に確定よ」
「 シングル・クォーテーションが3つ連続しているかを いちいちチェックするのかだぜ、めんどくさ……☆」
Pettern 3
'''
あ
'い'
''う''
'''
「 ↑ 3連シングル・クォーテーションが無ければ、パターン6確定で いいのでは……☆
パターン3 を好んで選ぶメリットが無いぜ☆」
Pattern 4.
'You say "Hello!".'
「 ↑ 単一行で、シングル・クォーテーションを含まなければ、パターン4確定で いいのでは……☆
他のパターンを好んで選ぶメリットが無いぜ☆」
Bad:
'You say "Hello!".\r\n'
「 それは \r\n
という4文字なんで☆ 改行2つにはなってないぜ☆」
Pattern 5.
'''a''b'''
「 うーん、このパターンは コーディングが複雑になるし、進んで取り入れたいほどのものでもないぜ☆」
<書きかけ>
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!