2019-09-28から1日間の記事一覧

IOインスタンスの読み書きモード

Kernel.#openとIO.openはだいたい同じ。IOインスタンスを返す。 第二引数で指定する読み書きモードについてメモ。 各種モードの違い 読み込み可能 書き込み可能 開いた時点で内容を白紙にする 書き込み開始位置 r 1 0 0 - r+ 1 1 0 先頭 w 0 1 1 先頭 w+ 1 1…

Arrayのメソッドいろいろ

挙動がちょっとややこしいものや、「どうなんだっけ?」となりがちな点についてまとめてメモ。 Array#product Array#product(*array) -> array レシーバの配列と引数の配列から、それぞれの全要素を掛け合わせた一次元配列を返す。 main = [:meat, :fish] sa…

日時のフォーマット

都度調べればいいけど、最低限「日付は小文字、時間は大文字」ってイメージをもっとくとよさそう。DateとTimeでフォーマットは基本的に共通。 日付 d = Date.new(2020,12,31) # => #<Date: 2020-12-31 ((2459215j,0s,0n),+0s,2299161j)> d.strftime('%y') # => "20" d.strftime('%Y') # => "2020" d.strftime('%</date:>…

X進数の数値リテラルほか

リファレンスのなぞり書き。 X進数の数値リテラル 接頭辞をつけることで10進数以外の表記でリテラルを記述できる。 接頭辞と整合的でない入力が続いた場合はエラーを返す。 16進数 => 接頭辞0x 0x10 # => 16 0x1g # => SyntaxError 2進数 => 接頭辞0b 0b10 #…

ヒアドキュメント

リファレンスのなぞり書き。 基本文法 <<[(-|~)]["'`]識別子["'`] ... 識別子 <<[(-|~)] << ヒアドキュメント内の空白文字は全て文字列に含まれる。 終端の識別子は行頭にある必要がある。=インデントされていると識別子とみなされない。 string = <<EOS line1 line2 EOS => " line</eos>…