\n
の意味(情報学概論 第10回補足)

バックスラッシュについて
- キーボードで 「¥」を押した時と「\」を押した時(両方のキーが用意されてはいないPCもあるが)同じ文字が表示されるだろう。
- 日本では「¥」(Yenマーク)の文字が表示されることが多いが、諸外国では「\」(バックスラッシュ)として表示されることが多い。
- これは日本語向けアスキー符号(JISとして規格化されて使われているもの)を策定した時に変更を2か所行ったうちの1つ(ここに解説あり)が原因で、
- (内部では)同じコードだが、表示が環境によって違う、という現象。
Rubyでの実験
- 以下に、Ruby言語(よく使われるプログラミング言語の1つ)での、確認の実施例を示す。
- irb(Interactive Ruby)という、Ruby言語の式を入力するとその値を評価(計算)して表示する対話環境を使っている。
- プロンプト( ‘irb … >’ の部分)の右が、入力した式(や、命令)。
- ’=>’ の右が、その値。
- その間に、’print’、’puts’といった、「xxxxを印字しなさい」という命令に対応して表示された文字が挟まっている箇所もある。
- コメント文字 ‘#’ の右に解説を付記した。
- 文字列は(殆どのプログラミング言語での慣例で)ダブルクォーテーション (”….”)で囲まれている。
C:\Users\nobu\OneDrive\class\IIn1>irb # ここから irb環境に入ります
irb(main):005:0> print "hello" # printでは指定した文字を印字したあと改行しない
hello=> nil # こうした印字命令は特別な値 nil を返す
irb(main):006:0> puts "hello" # puts では印字したのち改行する
hello
=> nil # ので'=>'が行頭からはじまる
irb(main):007:0> "hello".size
=> 5 # 文字列 "hello"の長さ(文字数):ここは直観の通り
irb(main):008:0> "hello\n".size # ""の間には7文字あるように見える、が
=> 6 # システムには6文字として認識される。
# '\n' が一つの文字(アスキーの制御文字 LF に相当)を意味するから
irb(main):010:0> print "hello\n"
hello
=> nil # helloのあと(\n記号のため)改行されている
irb(main):011:0> print "he\nllo"
he
llo=> nil # 途中で改行される

- ASCIIで “hello\n” は右図のように対応している(板書に計算ミス;asciiコードを暗算で書こうとするとミスしました;があったので訂正して提示します)。