種類
- 文書 (71)
- 特異メソッド (22)
- インスタンスメソッド (22)
- 変数 (11)
- ライブラリ (11)
モジュール
- Kernel (11)
キーワード
-
$ ~ (11) - =~ (11)
- Marshal フォーマット (11)
-
NEWS for Ruby 2
. 7 . 0 (5) - Ruby プログラムの実行 (11)
- Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (11)
- irb (11)
- mktmpdir (22)
-
ruby 1
. 6 feature (11) -
ruby 1
. 8 . 4 feature (11) - 演算子式 (11)
検索結果
先頭5件
-
Regexp
# ~ -> Integer | nil (18232.0) -
変数 $_ の値との間でのマッチをとります。
...st[][ruby]{
self =~ $_
//}
//emlist[例][ruby]{
$_ = "hogehoge"
if /foo/
puts "match"
else
puts "no match"
end
# => no match
# ただし、警告がでる。warning: regex literal in condition
reg = Regexp.compile("foo")
if ~ reg
puts "match"
else
puts "no match"
end
# => no match
if......reg
puts "match"
else
puts "no match"
end
# => match
# reg は nil でも false でも無いので常にtrue
//}... -
Regexp
# =~(string) -> Integer | nil (6263.0) -
文字列 string との正規表現マッチを行います。マッチした場合、 マッチした位置のインデックスを返します(先頭は0)。マッチしなかった 場合、あるいは string が nil の場合には nil を返 します。
...は0)。マッチしなかった
場合、あるいは string が nil の場合には nil を返
します。
//emlist[例][ruby]{
p /foo/ =~ "foo" # => 0
p /foo/ =~ "afoo" # => 1
p /foo/ =~ "bar" # => nil
//}
組み込み変数 $~ もしくは Regexp.last_match にマッチに関する情報 Ma......が nil でも String オブジェクト
でも Symbol でもない場合発生します。
//emlist[例][ruby]{
p /foo/ =~ "foo" # => 0
p Regexp.last_match(0) # => "foo"
p /foo/ =~ "afoo" # => 1
p $~[0] # => "foo"
p /foo/ =~ "bar" # => nil
un......less /foo/ === "bar"
puts "not match " # => not match
end
str = []
begin
/ugo/ =~ str
rescue TypeError
printf "! %s\t%s\n", $!, $@ # => ! can't convert Array into String r5.rb:15
end
//}... -
Kernel
$ $ ~ -> MatchData | nil (6219.0) -
現在のスコープで最後に成功したマッチに関する MatchDataオブジェクトです。 Regexp.last_match の別名です。
...目のマッチ ($n) を取り出すためには $~[n] を使います。
この値に代入すると Regexp.last_match や、 $&, $1, $2, ... などの関連する組み込み変数の値が変化します。
MatchData オブジェクトでも nil でもない値を代入しようとすると Type......ます。
この変数はローカルスコープかつスレッドローカルです。
Ruby起動時の初期値は nil です。
//emlist[例][ruby]{
str = '<p><a href="http://example.com">example.com</a></p>'
if %r[<a href="(.*?)">(.*?)</a>] =~ str
p $~[1]
end
#=> "http://example.com"
//}... -
ruby 1
. 6 feature (582.0) -
ruby 1.6 feature ruby version 1.6 は安定版です。この版での変更はバグ修正がメイン になります。
... nil
を返すようになりました。(String#[]やString#slice と同じ結果を返すと
いうことです)
p "foo".slice!("bar") # <- 以前からこちらは nil を返していた
p "foo".slice!(5,10)
=> ruby 1.6.7 (2002-03-01) [i586-linux]
nil......ーになっていました。
((<ruby-dev:17155>))
open("|-","r+") {|f|
if f
f.dup.close_write
else
sleep 1
end
}
=> ruby 1.6.7 (2002-03-01) [i586-linux]
-:3:in `close_write': closing non-duplex IO for writing (IOError)
from -:3......)}b/x =~ "ab"
=> -:3: warning: ambiguous first argument; make sure
ruby 1.6.7 (2002-03-01) [i586-linux]
"#"
0
=> -:3: warning: ambiguous first argument; make sure
ruby 1.6.7 (2002-07-30) [i586-linux]
"\\#"
nil
: 200... -
NEWS for Ruby 2
. 7 . 0 (312.0) -
NEWS for Ruby 2.7.0 このドキュメントは前回リリース以降のバグ修正を除くユーザーに影響のある機能の変更のリストです。
...p b #=> 1
p c #=> [2, 3]
end
//}
//emlist[][ruby]{
case {a: 0, b: 1}
in {a: 0, x: 1}
:unreachable
in {a: 0, b: var}
p var #=> 1
end
//}
//emlist[][ruby]{
case -1
in 0 then :unreachable
in 1 then :unreachable
end #=> NoMatchingPatternError
//}
//emlist{
json = <<END
{
"name": "Alice",
"a......ましたが、
再び許容されるようになりました。 15658
//emlist[][ruby]{
def foo(**kw); p kw; end; foo("str" => 1) #=> {"str"=>1}
//}
* メソッド定義で**nilと書くことで、このメソッドがキーワードを
受け取らないことを明示できるよう......github.com/bundler/bundler/releases/tag/v2.1.2
* CGI
* CGI.escapeHTMLが少なくとも1個のエスケープされた文字があるときに2~5倍速くなりました。
https://github.com/ruby/ruby/pull/2226
* CSV
* 3.1.2に更新されました。
https://github.com/ru... -
Dir
. mktmpdir(prefix _ suffix = nil , tmpdir = nil) -> String (282.0) -
一時ディレクトリを作成します。
...のパスを
返します。この場合、このメソッドは作成した一時ディレクトリを削除しません。
@param prefix_suffix nil の場合は、'd' をデフォルトのプレフィクスとして使用します。サフィックスは付きません。
文......pdir nil の場合は Dir.tmpdir を使用します。
そうでない場合は、そのディレクトリを使用します。
使用例
require 'tmpdir'
puts Dir.tmpdir
# 出力例: 動作環境により出力は異なります。
#=> /cygdrive/c/DOCUME~1/kouya/LOCALS~1/Te......リは存在する。
begin
File.open("#{dir}/foo", "w") { |fp|
fp.puts "hogehoge"
}
ensure
FileUtils.remove_entry_secure dir
end
p FileTest.directory?(dir) #=> false
@raise ArgumentError tmpdirが全てのユーザから書き込み可能かつ、sticky... -
Dir
. mktmpdir(prefix _ suffix = nil , tmpdir = nil) {|dir| . . . } -> object (282.0) -
一時ディレクトリを作成します。
...のパスを
返します。この場合、このメソッドは作成した一時ディレクトリを削除しません。
@param prefix_suffix nil の場合は、'd' をデフォルトのプレフィクスとして使用します。サフィックスは付きません。
文......pdir nil の場合は Dir.tmpdir を使用します。
そうでない場合は、そのディレクトリを使用します。
使用例
require 'tmpdir'
puts Dir.tmpdir
# 出力例: 動作環境により出力は異なります。
#=> /cygdrive/c/DOCUME~1/kouya/LOCALS~1/Te......リは存在する。
begin
File.open("#{dir}/foo", "w") { |fp|
fp.puts "hogehoge"
}
ensure
FileUtils.remove_entry_secure dir
end
p FileTest.directory?(dir) #=> false
@raise ArgumentError tmpdirが全てのユーザから書き込み可能かつ、sticky... -
irb (210.0)
-
irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。
...irb(main):001:0> 1+2
3
irb(main):002:0> class Foo
irb(main):003:1> def foo
irb(main):004:2> print 1
irb(main):005:2> end
irb(main):006:1> end
:foo
irb(main):007:0>
また irb コマンドは readline ライブラリにも対応しています。
readline ライブラリ......の機能が使えるようになります。
=== irb のコマンドラインオプション
irb [options] file_name opts
options:
-f ~/.irbrc を読み込まない
-m bc モード (分数と行列の計算ができる)
-d $DEBUG を true に......nf[:DEBUG_LEVEL] = 1
IRB.conf[:ECHO] = nil
IRB.conf[:EVAL_HISTORY] = nil
IRB.conf[:HISTORY_FILE] = nil
IRB.conf[:IGNORE_EOF] = true
IRB.conf[:IGNORE_SIGINT] = true
IRB.conf[:INSPECT_MODE] = nil
IRB.conf[:IRB_NAME] = "irb"
IRB.conf[:IRB_RC] = nil
IRB.conf[:MATH_MODE] = false
IRB.c......の機能が使えるようになります。
=== irb のコマンドラインオプション
irb [options] file_name opts
options:
-f ~/.irbrc を読み込まない
-d $DEBUG を true にする (ruby -d と同じ)
-w ruby -w と同じ
-W[le......nf[:DEBUG_LEVEL] = 1
IRB.conf[:ECHO] = nil
IRB.conf[:EVAL_HISTORY] = nil
IRB.conf[:HISTORY_FILE] = nil
IRB.conf[:IGNORE_EOF] = true
IRB.conf[:IGNORE_SIGINT] = true
IRB.conf[:INSPECT_MODE] = nil
IRB.conf[:IRB_NAME] = "irb"
IRB.conf[:IRB_RC] = nil
IRB.conf[:PROMPT] = {....}
IRB.con... -
Marshal フォーマット (204.0)
-
Marshal フォーマット フォーマットバージョン 4.8 を元に記述しています。
...l フォーマット
フォーマットバージョン 4.8 を元に記述しています。
=== nil, true, false
それぞれ、'0', 'T', 'F' になります。
//emlist[][ruby]{
p Marshal.dump(nil).unpack1("x2 a*") # => "0"
p Marshal.dump(true).unpack1("x2 a*") # => "T"
p Marshal.dump(false......値は -4 〜 -1, 1 〜 4 で。符号と後続のデータが n1 〜 n_len
まであることを示します。
//emlist[][ruby]{
def foo(len, n1, n2 = 0, n3 = 0, n4 = 0)
case len
when -3; n4 = 255
when -2; n3 = n4 = 255
when -1; n2 = n3 = n4 = 255
end
n = (......00) &
(0xff00ffff | n3 * 0x10000) &
(0x00ffffff | n4 * 0x1000000)
# p "%x" % n
n = -((n ^ 0xffff_ffff) + 1) if len < 0
n
end
p Marshal.dump(-125).unpack("x2 acC*") # => ["i", -1, 131]
p foo(-1, 131) # => -125
p Marshal.dump(-255).unpack("x2 acC*")... -
演算子式 (186.0)
-
演算子式 * assign * selfassign * multiassign * range * range_cond * and * or * not * cond
...[]
+(単項) ! ~
**
-(単項)
* / %
+ -
<< >>
&
| ^
> >= < <=
<=> == === != =~ !~
&&......出しに変換されます。
//emlist[例][ruby]{
class C
def initialize
@ary = [0,1,2,3,4,5,6,7]
end
def [](i)
@ary[i * 2]
end
def []=( i, v )
@ary[i * 2] = v
end
end
c = C.new
p c[3] # c.[]( 3 ) に変換され、その結果は 6
p c[3] = 1 # c.[]=(3,1) に変換......方が多い場合には、余った要素は無視されます。
配列の要素が足りない場合には対応する要素の無い左辺には
nil が代入されます。
左辺の最後の式の直前に * がついていると、対応する
左辺のない余った要素が配列として...