タグ

ブックマーク / docs.ruby-lang.org (23)

  • Float#round (Ruby 3.2 リファレンスマニュアル)

    round(ndigits = 0) -> Integer | Float[permalink][rdoc][edit] round(ndigits = 0, half: :up) -> Integer | Float 自身ともっとも近い整数もしくは実数を返します。 中央値 0.5, -0.5 はそれぞれ 1,-1 に切り上げされます。いわゆる四捨五入ですが、偶数丸めではありません。 [PARAM] ndigits: 丸める位を指定します。 ndigitsが0ならば、小数点以下を四捨五入し、整数を返します。 ndigitsが0より大きいならば、小数点以下の指定された位で四捨五入されます。 ndigitsが0より小さいならば、小数点以上の指定された位で四捨五入されます。 [PARAM] half: ちょうど半分の値の丸め方を指定します。サポートされている値は以下の通りです。 :up or n

    kiyo_hiko
    kiyo_hiko 2016/04/13
    RubyのFloat#roundはいわゆる四捨五入である。floor、ceiling、truncateある。
  • Enumerable#partition (Ruby 3.3 リファレンスマニュアル)

    partition -> Enumerator[permalink][rdoc][edit] partition {|item| ... } -> [[object], [object]] 各要素を、ブロックの条件を満たす要素と満たさない要素に分割します。各要素に対してブロックを評価して、その値が真であった要素の配列と、偽であった要素の配列の 2 つを配列に入れて返します。 ブロックを省略した場合は Enumerator を返します。 例 [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0].partition {|i| i % 3 == 0 } #=> [[9, 6, 3, 0], [10, 8, 7, 5, 4, 2, 1]]

    kiyo_hiko
    kiyo_hiko 2016/04/06
    これ文字列配列に使おうとしたらString#patitionてのもいて、確実にこっちをよぶようにするためにss = [ss].flattem/partitionってやって当たった
  • Object::DATA (Ruby 3.2 リファレンスマニュアル)

    DATA -> File[permalink][rdoc][edit] スクリプトの __END__ プログラムの終り以降をアクセスする File オブジェクト。 プログラム・文・式/プログラムの終りも参照。 ソースファイルの __END__ 以降は解析・実行の対象にならないのでその部分にプログラムが利用するためのデータを書き込んでおくことができます。 DATA 定数はそのデータ部分にアクセスするための File オブジェクトを保持しています。 __END__ を含まないプログラムにおいては DATA は定義されません。 注意 DATA.rewind で移動する読みとり位置は __END__ 直後ではなく、 スクリプトファイルの先頭です。 スクリプトが標準入力から読みこまれた場合は標準入力になります。 スクリプトがファイルや標準入力から読みこまれなかった場合や、 __END__ で終ってい

  • Object::ARGV (Ruby 3.2 リファレンスマニュアル)

    ARGV -> Array[permalink][rdoc][edit] Ruby スクリプトに与えられた引数を表す配列です。 組み込み変数 $* の別名です。 Ruby 自身に対する引数は取り除かれています。 例: スクリプト argv.rb の内容が p ARGV であったとします。このときシェルから次を実行すると、 $ ruby argv.rb foo bar baz 結果は以下のように出力されます。 ["foo", "bar", "baz"] ARGV -> Array[permalink][rdoc][edit] [redefined by optparse] Ruby スクリプトに与えられた引数を表す配列です。 optparse を require することにより、ARGV は OptionParser::Arguable を Object#extend します。 [SEE_A

  • module URI (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 URI を扱うためのモジュールです。 目次 特異メソッド decode_www_form decode_www_form_component encode_www_form encode_www_form_component extract join parse regexp split 定数 UNSAFE 特異メソッド decode_www_form(str, enc=Encoding::UTF_8) -> [[String, String]][permalink][rdoc][edit] 文字列から URL-encoded form data をデコードします。 application/x-www-form-urlencoded 形式のデータをデコードし、 [key, value] という形の配列の配列を返します。 enc で指定したエンコーディングの文字列が UR

    kiyo_hiko
    kiyo_hiko 2016/02/17
    encode、escapeとかobsoleteになってた
  • class Array (Ruby 2.4.0)

    [edit] dynamic include: JSON::Generator::GeneratorMethods::Array (by json) 要約 配列クラスです。配列は任意の Ruby オブジェクトを要素として持つことができます。 一般的には配列は配列式を使って 例 [1, 2, 3] のように生成します。 目次 特異メソッド [] new try_convert インスタンスメソッド & * + - << <=> == [] []= | all? any? append assoc at bsearch bsearch_index clear clone collect collect! combination compact compact! concat count cycle delete delete_at delete_if difference dig drop d

    kiyo_hiko
    kiyo_hiko 2016/02/17
    arrayから差集合を得るのって単に-メソッド使うだけでいいのだな
  • 演算子式 (Ruby 2.4.0)

    [edit] 代入 自己代入 多重代入 範囲式 条件式としての範囲式 and or not 条件演算子 例 1+2*3/4 プログラミングの利便のために一部のメソッド呼び出しと制御構造は演算子形式をとります。Rubyには以下にあげる演算子があります。 高い :: [] +(単項) ! ~ ** -(単項) * / % + - << >> & | ^ > >= < <= <=> == === != =~ !~ && || .. ... ?:(条件演算子) =(+=, -= ... ) not 低い and or 左の「高い」「低い」は演算子の優先順位です。例えば「&&」は「||」より優先順位が高いので、以下のように解釈されます。 a && b || c #=> (a && b) || c a || b && c #=> a || (b && c) ほとんどの演算子は特別な形式のメソッド呼び出

    kiyo_hiko
    kiyo_hiko 2016/01/20
    !>&&>||、not>and,or。。記号と英単語の間にrange、条件演算子、代入(複合代入含む)演算子居る。∴ a = b && c ? d : eみたいな式はa = ((b && c) ? d : e)に評価され、a = b and c ? d : e なら (a = b) and (c ? d : e)。∴単語=制御的っぽさ
  • 変数と定数 (Ruby 3.3 リファレンスマニュアル)

    [edit] ローカル変数 インスタンス変数 クラス変数 クラス変数のスコープ グローバル変数 擬似変数 定数 定数参照の優先順位 Ruby の変数と定数の種別は変数名の最初の一文字によって、ローカル変数、インスタンス変数、クラス変数、グローバル変数、定数のいずれかに区別されます。通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名の長さにはメモリのサイズ以外の制限はありません。 ローカル変数 例 foobar 小文字または`_'で始まる識別子はローカル変数またはメソッド呼び出しです。ローカル変数スコープ(クラス、モジュール、メソッド定義の体)における小文字で始まる識別子への最初の代入はそのスコープに属するローカル変数の宣言になります。宣言されていない識別子の参照は引数の無いメソッド呼び出しとみ

    kiyo_hiko
    kiyo_hiko 2016/01/19
    一見評価されない変数代入式でも変数は宣言される ∴ false and var = 999; p var # => nilなので宣言されたことわかる。もし宣言されていなければvarはアリティ0なメソッドの呼び出しに評価され、NameErrorになる
  • instance method String#gsub (Ruby 2.0.0)

    gsub(pattern, replace) -> String[permalink][rdoc] 文字列中で pattern にマッチする部分全てを 文字列 replace で置き換えた文字列を生成して返します。 置換文字列 replace 中の \& と \0 はマッチした部分文字列に、 \1 ... \9 は n 番目の括弧の内容に置き換えられます。 置換文字列内では \`、\'、\+ も使えます。 これらは $`、$'、$+ に対応します。 [PARAM] pattern: 置き換える文字列のパターンを表す文字列か正規表現。 文字列を指定した場合は全く同じ文字列にだけマッチする [PARAM] replace: pattern で指定した文字列と置き換える文字列 例: p 'abcdefg'.gsub(/def/, '!!') # => "abc!!g" p 'abcabc'.gs

    kiyo_hiko
    kiyo_hiko 2016/01/02
    2nd argに$1を入れても意図した結果にならないらしい
  • String#encode (Ruby 3.3 リファレンスマニュアル)

    encode(encoding, **options) -> String[permalink][rdoc][edit] encode(encoding, from_encoding, **options) -> String encode(**options) -> String self を指定したエンコーディングに変換した文字列を作成して返します。引数を2つ与えた場合、第二引数は変換元のエンコーディングを意味します。さもなくば self のエンコーディングが使われます。無引数の場合は、Encoding.default_internal が nil でなければそれが変換先のエンコーディングになり、かつ :invalid => :replace と :undef => :replace が指定されたと見なされ、nil ならば変換は行われません。 [PARAM] encoding: 変換先

  • String#match (Ruby 3.3 リファレンスマニュアル)

    match(regexp, pos = 0) -> MatchData | nil[permalink][rdoc][edit] match(regexp, pos = 0) {|m| ... } -> object regexp.match(self, pos) と同じです。 regexp が文字列の場合は、正規表現にコンパイルします。詳しくは Regexp#match を参照してください。 例: regexp のみの場合 'hello'.match('(.)\1') # => #<MatchData "ll" 1:"l"> 'hello'.match('(.)\1')[0] # => "ll" 'hello'.match(/(.)\1/)[0] # => "ll" 'hello'.match('xx') # => nil 例: regexp, pos を指定した場合 'hoge hig

    kiyo_hiko
    kiyo_hiko 2015/12/24
    "if matched = receiver.match(/pattern/); var = matched[0]...; end" マッチするとMatchDataというクラスのインスタンスが入ってboolの文脈でtrueに評価される。しないとnil。MatchDataからは添字で複数の一致文字列を取り出す。
  • Enumerable#collect (Ruby 3.3 リファレンスマニュアル)

    collect -> Enumerator[permalink][rdoc][edit] map -> Enumerator collect {|item| ... } -> [object] map {|item| ... } -> [object] 各要素に対してブロックを評価した結果を全て含む配列を返します。 ブロックを省略した場合は Enumerator を返します。 例 # すべて 3 倍にした配列を返す p (1..3).map {|n| n * 3 } # => [3, 6, 9] p (1..3).collect { "cat" } # => ["cat", "cat", "cat"] [SEE_ALSO] Hash#to_h, Array#collect, Array#map

    kiyo_hiko
    kiyo_hiko 2015/12/04
    xs.map!てmapcと同じような感覚で使うのかなと勝手に思っていたが、きちんと各要素に入る値をimplicit progn的に返す必要ある
  • Enumerable#include? (Ruby 3.3 リファレンスマニュアル)

    member?(val) -> bool[permalink][rdoc][edit] include?(val) -> bool val と == の関係にある要素を含むとき真を返します。 [PARAM] val: 任意のオブジェクト 例 [2, 4, 6].include? 2 #=> true [2, 4, 6].include? 1 #=> false [2, 4, 6].member? 2 #=> true [2, 4, 6].member? 1 #=> false

    kiyo_hiko
    kiyo_hiko 2015/11/24
    memberが使える。xs.member? x
  • Array#sort (Ruby 3.3 リファレンスマニュアル)

    sort -> Array[permalink][rdoc][edit] sort! -> self sort {|a, b| ... } -> Array sort! {|a, b| ... } -> self 配列の内容をソートします。要素同士の比較は <=> 演算子を使って行います。sort はソートされた配列を生成して返します。 sort! は self を破壊的にソートし、self を返します。 ブロックとともに呼び出された時には、要素同士の比較をブロックを用いて行います。ブロックに2つの要素を引数として与えて評価し、その結果で比較します。ブロックは <=> 演算子と同様に整数を返すことが期待されています。つまり、ブロックは第1引数が大きいなら正の整数、両者が等しいなら0、そして第1引数の方が小さいなら負の整数を返さなければいけません。両者を比較できない時は nil を返します。

    kiyo_hiko
    kiyo_hiko 2015/11/11
    宇宙船演算子でソートする
  • String#start_with? (Ruby 3.3 リファレンスマニュアル)

    start_with?(*prefixes) -> bool[permalink][rdoc][edit] self の先頭が prefixes のいずれかであるとき true を返します。 [PARAM] prefixes: パターンを表す文字列または正規表現 (のリスト) 例 "string".start_with?("str") # => true "string".start_with?("ing") # => false "string".start_with?("ing", "str") # => true "string".start_with?(/\w/) # => true "string".start_with?(/\d/) # => false [SEE_ALSO] String#end_with? [SEE_ALSO] String#delete_prefix, S

    kiyo_hiko
    kiyo_hiko 2015/11/11
    'hello world'.start_with? 'hell' みたいに使う
  • Array#filter (Ruby 3.3 リファレンスマニュアル)

    select -> Enumerator[permalink][rdoc][edit] filter -> Enumerator select {|item| ... } -> [object] filter {|item| ... } -> [object] 各要素に対してブロックを評価した値が真であった要素を全て含む配列を返します。真になる要素がひとつもなかった場合は空の配列を返します。 ブロックを省略した場合は Enumerator を返します。 例 [1,2,3,4,5].select # => #<Enumerator: [1, 2, 3, 4, 5]:select> [1,2,3,4,5].select { |num| num.even? } # => [2, 4] [SEE_ALSO] Enumerable#select [SEE_ALSO] Array#select!

    kiyo_hiko
    kiyo_hiko 2015/11/11
    remove-if-notとかfilter的な // even_upto_10 = 1.upto(10).select { |n| n % 2 == 0 }
  • Hash#keys (Ruby 3.3 リファレンスマニュアル)

    keys -> [object][permalink][rdoc][edit] 全キーの配列を返します。 例 h1 = { "a" => 100, 2 => ["some"], :c => "c" } p h1.keys #=> ["a", 2, :c] [SEE_ALSO] Hash#values,Hash#to_a

    kiyo_hiko
    kiyo_hiko 2015/11/11
    mをマップのインスタンスとすると、m.keys
  • library pp (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 オブジェクトなどを見やすく出力するためのライブラリです。 pp ライブラリは、ユーザがあたらしく定義したクラスに対しても見やすい表示をするように作られていますので、Kernel.#pp を使う上で余計な作業をする必要はありません。 どちらが読みやすいでしょうか? p による pretty-print されてない出力: #<PP:0x81a0d10 @stack=[], @genspace=#<Proc:0x81a0cc0>, @nest=[0], @newline="\n", @buf=#<PrettyPrint::Group:0x81a0c98 @group=0, @tail=0, @buf=[#<PrettyPrint::Gro up:0x81a0ba8 @group=1, @tail=0, @buf=[#<PrettyPrint::Text:0x81a0b30 @

    kiyo_hiko
    kiyo_hiko 2015/10/23
    Rubyでプリプリをするライブラリー
  • Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (Ruby 2.0.0)

    ! ? # % & | + - * / ^ ' . , < > = ~ $ @ _ {} [] () " : ` \ ; ! !true not 演算子。演算子式/notを参照。 3 != 5 「等しくない」比較演算子。演算子式/notを参照。 def xxx! 「!」はメソッド名の一部です。慣用的に、 同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。 /xxx/ !~ yyy 正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。 ? ?a リテラル/文字列リテラル。長さ 1 の文字列。 def xx? この場合の「?」はメソッド名の一部分です。 慣用的に、真偽値を返すタイプのメソッドを示すために使われます。 xx ? yy : zz 演算子式/条件演算子。三項演算子とも呼ばれます。if xx then yy e

  • Hash#merge (Ruby 3.3 リファレンスマニュアル)

    merge(*others) -> Hash[permalink][rdoc][edit] merge(*others) {|key, self_val, other_val| ... } -> Hash selfとothersのハッシュの内容を順番にマージ(統合)した結果を返します。デフォルト値はselfの設定のままです。 self と others に同じキーがあった場合はブロック付きか否かで判定方法が違います。ブロック付きのときはブロックを呼び出してその返す値を重複キーに対応する値にします。ブロック付きでない場合は常に others の値を使います。 othersがハッシュではない場合、othersのメソッドto_hashを使って暗黙の変換を試みます。 [PARAM] others: マージ用のハッシュまたはメソッド to_hash でハッシュに変換できるオブジェクトです。 [RET

    kiyo_hiko
    kiyo_hiko 2015/10/14
    a.merge b # => new hash、merge! => 破壊されたa。aとbで同じキーがあればbで上書きされる