タグ

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

  • Integer#[] (Ruby 3.3 リファレンスマニュアル)

    self[nth] -> Integer[permalink][rdoc][edit] self[nth, len] -> Integer self[range] -> Integer nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。 [PARAM] nth: 何ビット目を指すかの数値 [PARAM] len: 何ビット分を返すか [PARAM] range: 返すビットの範囲 [RETURN] self[nth] は 1 か 0 [RETURN] self[i, len] は (n >> i) & ((1 << len) - 1) と同じ [RETURN] self[i..j] は (n >> i) & ((1 << (j - i + 1)) - 1) と同じ [RETURN] self[i...j] は (n >> i)

    udzura
    udzura 2021/04/16
    ビットの確認ってこれで取れるんか...
  • sprintf フォーマット (Ruby 3.3 リファレンスマニュアル)

    Ruby の sprintf フォーマットは基的に C 言語の sprintf(3) のものと同じです。ただし、short や long などの C 特有の型に対する修飾子がないこと、2進数の指示子(%b, %B)が存在すること、sprintf のすべての方言をサポートしていないこと(%': 3桁区切り)などの違いがあります。 Ruby には整数の大きさに上限がないので、%b, %B, %o, %x, %X に負の数を与えると (左側に無限に1が続くとみなせるので) ..f のような表示をします。絶対値に符号を付けた形式で出力するためには %+x、% x のように指定します。 以下は sprintf フォーマットの書式です。[] で囲まれた部分は省略可能であることを示しています。 %[nth$][フラグ][幅][.精度]指示子 %[<name>][フラグ][幅][.精度]指示子 `%'

    udzura
    udzura 2020/04/22
    “`+', ` ' フラグがない場合、負の数には ".." が先頭(`#' フラグがあれば "0x" などの後)に付加されます。これは最上位桁の文字が無限に続くことを意味し、2の補数表現で負の数を表しています。”
  • library iconv (Ruby 1.8.7)

    要約 Iconv は UNIX 95 の iconv() 関数のラッパーで、 さまざまな文字コード体系間で文字列の変換を行ないます。 詳細は http://www.opengroup.org/ のオンラインドキュメントを 参照して下さい。 iconv(3) iconv_open(3) iconv_close(3) http://www.opengroup.org/onlinepubs/009695399/basedefs/iconv.h.html このライブラリは obsolete です。2.0 以降では利用することが出来ません。 注意 どの文字コード体系が利用できるかはプラットフォーム依存です。さらに文字コード体系をあらわす文字列もプラットフォーム依存です。日語 EUC をあらわす文字列が EUC-JP, euc-jp, eucJP など異なる場合があります。このプラットフォームによる

    udzura
    udzura 2019/12/18
    えっ、 iconv って 2.0 の時点で標準添付から消えてたの...
  • Float#next_float (Ruby 3.3 リファレンスマニュアル)

    next_float -> Float[permalink][rdoc][edit] 浮動小数点数で表現可能な self の次の値を返します。 Float::MAX.next_float、Float::INFINITY.next_float は Float::INFINITY を返します。Float::NAN.next_float は Float::NAN を返します。 例 p 0.01.next_float # => 0.010000000000000002 p 1.0.next_float # => 1.0000000000000002 p 100.0.next_float # => 100.00000000000001 p 0.01.next_float - 0.01 # => 1.734723475976807e-18 p 1.0.next_float - 1.0 # => 2.2

    udzura
    udzura 2019/12/02
    かなり昔からあったっぽいけど知らなかった。
  • library fiddle (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 *.dllや*.soなど、ダイナミックリンクライブラリを扱うためのライブラリです。 dl と同等の機能を持ちますが、 dl は 2.0 以降deprecated となり、2.2.0 で削除されました。このライブラリを代わりに使います。 使い方 通常は fiddle/import ライブラリを require して Fiddle::Importer モジュールを使用します。 Fiddle モジュール自体はプリミティブな機能しか提供していません。 Fiddle::Importer モジュールは以下のようにユーザが定義したモジュールを拡張する形で使います。 require "fiddle/import" module M extend Fiddle::Importer end 以後、このモジュールで dlload や extern などのメソッドが使用できるようになります。以

    udzura
    udzura 2019/06/24
    Rubyにもだいたい同等のコールバック作成くんがあるか。
  • function rb_scan_args (Ruby 3.3 リファレンスマニュアル)

    [edit] int rb_scan_args(int argc, const VALUE *argv, const char *fmt, ...) 長さ argc の配列 argv を fmt に従って解析し、第四引数以降で渡されたアドレスに書き込みます。 fmt のフォーマットは以下の通りです。 必須引数の数 (省略可能な引数があるなら省略不可) 省略可能な引数の数 (ゼロ個ならば省略可) 残りの引数を Ruby の配列として受け取ることを示す '*' (省略可) 最後の引数をオプションハッシュとして受け取る事を示す ':' (省略可) ブロックを Proc オブジェクト化して受け取ることを示す '&' (省略可) これらの指定文字はそれぞれ省略可能ですが、必ずこの順番で現れなければいけません。 使用例 VALUE a, b, optv; rb_scan_args(argc, argv

    udzura
    udzura 2019/02/21
  • 関数一覧 (Ruby 3.3 リファレンスマニュアル)

    type 型のメモリを n 個スタックフレームに割り当てる。このメモリは関数が終わると自動的に解放される。

    udzura
    udzura 2019/02/20
    すごい、神ページだ... #fukuokarb
  • String#hex (Ruby 3.3 リファレンスマニュアル)

    hex -> Integer[permalink][rdoc][edit] 文字列に 16 進数で数値が表現されていると解釈して整数に変換します。接頭辞 "0x", "0X" とアンダースコアは無視されます。文字列が [_0-9a-fA-F] 以外の文字を含むときはその文字以降を無視します。 self が空文字列のときは 0 を返します。 例 p "10".hex # => 16 p "ff".hex # => 255 p "0x10".hex # => 16 p "-0x10".hex # => -16 p "xyz".hex # => 0 p "10z".hex # => 16 p "1_0".hex # => 16 p "".hex # => 0 [SEE_ALSO] String#oct, String#to_i, String#to_f, Kernel.#Integer, Ker

    udzura
    udzura 2017/05/24
    こんなメソッドあったの忘れていた。過去の自分すごいなw #fukuokarb
  • class RubyVM::InstructionSequence (Ruby 3.3 リファレンスマニュアル)

    [edit] 要約 Ruby の Virtual Machine のコンパイル済みの命令シーケンスを表すクラスです。 Method、Proc オブジェクトや Ruby のソースコードを表す文字列から VM の命令シーケンスを得る事ができます。また、 RubyVM::InstructionSequence オブジェクトを元に命令シーケンスを読みやすい文字列に変換する事もできます。Ruby の命令シーケンスコンパイラの設定を扱う必要がありますが、Ruby の VM がどのように働くかを知るのに有用です。 VM の命令シーケンスの一覧はRuby のソースコード中の insns.def から参照できます。 https://github.com/ruby/ruby/blob/master/insns.def 目次 特異メソッド compile compile_file compile_option

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

    [edit] 要約 特殊な用途のために意図的にほとんど何も定義されていないクラスです。 Objectクラスの親にあたります。Ruby 1.9 以降で導入されました。 性質 BasicObject クラスは Object クラスからほとんどのメソッドを取り除いたクラスです。 Object クラスは様々な便利なメソッドや Kernel から受け継いだ関数的メソッドを多数有しています。これに対して、 BasicObject クラスはオブジェクトの同一性を識別したりメソッドを呼んだりする最低限の機能の他は一切の機能を持っていません。 用途 基的にはほぼすべてのクラスの親は Object と考えて差し支えありません。しかし、ある種のクラスを定義する際には Object クラスは持っているメソッドが多すぎる場合があります。 例えば、 BasicObject#method_missingを利用して P

    udzura
    udzura 2014/03/19
    BasicObjectに存在するわずかなメソッド一覧
  • library un (Ruby 2.0.0)

    要約 Unix の基コマンドの代替となるユーティリティ。 Makefile 内でシステムに依存しないように用意されました。 mkmf が使用します。 Windows などワイルドカードを認識しないシステム(シェル)のために引数は unがワイルドカード展開(Dir.glob参照)します(Unix ではシェ ルとunにより二重にワイルドカード展開されます)。 使い方: ruby -run -e cp -- [-prv] SOURCE DEST ruby -run -e ln -- [-sfv] TARGET LINK_NAME ruby -run -e mv -- [-v] SOURCE DEST ruby -run -e rm -- [-frv] FILE ruby -run -e mkdir -- [-pv] DIRS ruby -run -e rmdir -- [-v] DIRS ru

    udzura
    udzura 2013/04/26
    便利です
  • instance method Module#private_constant (Ruby 2.0.0)

    private_constant(*name) -> self[permalink][rdoc] name で指定した定数の可視性を private に変更します。 [PARAM] name: 0 個以上の String か Symbol を指定します。 [EXCEPTION] NameError: 存在しない定数を指定した場合に発生します。 [EXCEPTION] SecurityError: セーフレベル($SAFE)が 4 以上で self が untrust なオブジェクトではない場合に発生します。 [RETURN] self を返します。 [SEE_ALSO] Module#public_constant, Object#untrusted?

    udzura
    udzura 2013/04/20
    こんなメソッドあったのね
  • library mkmf (Ruby 1.9.3)

    要約 Ruby の拡張ライブラリのための Makefile を作成するライブラリです。 このライブラリは通常、extconf.rb という名前の ruby スクリプトから require されます。 この extconf.rb を実行して Makefile を作成するのが慣習です。 extconf.rb の書きかたについては、 Rubyアーカイブに含まれる README.EXT (日語版は README.EXT.ja) も参照してください。 このライブラリでは extconf.rb を記述するのに有用なメソッドを定義しています。 ヘッダファイルの存在チェック、ライブラリの存在チェックなど、 システム間の差異を調べシステムに適した Makefile を生成するために これらのメソッドが必要となります。 使い方 架空の拡張ライブラリ foo.so を作成することを考えます。 この拡張ライ

  • class Continuation (Ruby 1.9.3)

    クラスの継承リスト: Continuation < Object < Kernel < BasicObject 要約 継続を表すクラスです。 Kernel.#callcc { |cont| ... } の呼び出し は、直前の状態(ローカル変数の定義、スタックフレーム)を cont に記憶 してブロックを実行します。cont は、Continuation クラスのインスタ ンスで、Continuation#call メソッドを実行するこ とでいつでも記憶した状態を継続することができます。 C 言語の setjmp()/longjmp() がわかる人は setjmp() == callcc {|c| } longjmp() == c.call と考えれば、わかりやすいかも知れません(ただし、callcc はスタックが深く なる方向にもジャンプ出来るという違いがあります) callcc() は、

  • library rake (Ruby 1.9.3)

    要約 Rake というコマンドラインツールを扱うライブラリです。 Rake とは Rake は Make によく似た機能を持つ Ruby で書かれたシンプルなビルドツールです。 Rake は以下のような特徴を持っています。 Rakefile (Rake における Makefile) は標準的な Ruby の文法で書くことができます。 XML ファイルを編集する必要はありませんし、Makefile の風変わりな文法 (タブだっけ?スペースだっけ?) に頭を悩ませる必要もありません。 ユーザは必須条件をタスクに指定できます。 Rake は暗黙のタスクを合成することをサポートしています。 配列のように振る舞うフレキシブルな FileList メソッドがあります。 FileList はファイル名やパス名を扱うのに便利です。 Rakefile をより簡単に作成するためにこのライブラリにはいくつかのタ

    udzura
    udzura 2012/11/13
    rake とかもるりまに入ってるんですね、そりゃそうか……
  • module MiniTest::Assertions (Ruby 1.9.3)

    クラスの継承リスト: MiniTest::Assertions 要約 各種 assert メソッドを提供します。 目次 インスタンスメソッド _assertions _assertions= assert assert_block assert_empty assert_equal assert_in_delta assert_in_epsilon assert_includes assert_instance_of assert_kind_of assert_match assert_nil assert_operator assert_raises assert_respond_to assert_same assert_send assert_throws capture_io exception_details flunk message mu_pp pass skip インスタン

  • class FloatDomainError (Ruby 1.9.3)

    クラスの継承リスト: FloatDomainError < RangeError < StandardError < Exception < Object < Kernel < BasicObject 要約 正負の無限大や NaN (Not a Number) を Bignum に変換しようとしたり、 NaN との比較を行ったときに発生します。 目次

    udzura
    udzura 2012/06/14
    こんな例外あるの…… はじめて見た
  • class Thread (Ruby 1.9.3)

    クラスの継承リスト: Thread < Object < Kernel < BasicObject 要約 スレッドを表すクラスです。スレッドとはメモリ空間を共有して同時に実行される制御の流れです。 Thread を使うことで並行プログラミングが可能になります。 実装 ネイティブスレッドを用いて実装されていますが、 現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行される ネイティブスレッドは常にひとつです。 ただし、IO 関連のブロックする可能性があるシステムコールを行う場合には GVL を解放します。その場合にはスレッドは同時に実行され得ます。 また拡張ライブラリから GVL を操作できるので、複数のスレッドを 同時に実行するような拡張ライブラリは作成可能です。 スケジューリング Ruby のスレッドスケジューリングはネイティブスレッドの

    udzura
    udzura 2012/06/05
    これか、知らねえ……
  • instance method Fixnum#[] (Ruby 1.9.3)

    self[nth] -> Fixnum[permalink][rdoc] nth 番目のビット(最下位ビット(LSB)が 0 番目)が立っている時 1 を、そうでなければ 0 を返します。 [PARAM] nth: 何ビット目を指すかの数値 [RETURN] 1 か 0 self[nth]=bit (つまりビットの修正) がないのは、Numeric 関連クラスが immutable であるためです。

    udzura
    udzura 2012/05/22
    今日の便利メソッド
  • class Struct (Ruby 1.9.3)

    クラスの継承リスト: Struct < Enumerable < Object < Kernel < BasicObject 要約 構造体クラス。Struct.new はこのクラスのサブクラスを新たに生成します。 個々の構造体はサブクラスから Struct.new を使って生成します。個々 の構造体サブクラスでは構造体のメンバに対するアクセスメソッドが定義され ています。 目次 特異メソッド [] new members インスタンスメソッド == [] []= each each_pair eql? equal? hash inspect to_s length size members select to_a values values_at 特異メソッド new(*args) -> Class[permalink][rdoc] new(*args) {|Class| block }

    udzura
    udzura 2012/04/19
    Ruby の Struct 、何が面白いって Struct 自体とサブクラスで結構メソッドが変わってしまうところだよなあ