別のキーワード
種類
- インスタンスメソッド (228)
- モジュール関数 (84)
- 文書 (24)
- ライブラリ (12)
- クラス (12)
モジュール
- Benchmark (24)
- Enumerable (72)
- Math (36)
- Syslog (24)
検索結果
先頭5件
-
String
# upto(max , exclusive = false) {|s| . . . } -> self (18232.0) -
self から始めて max まで 「次の文字列」を順番にブロックに与えて繰り返します。 「次」の定義については String#succ を参照してください。
...えば以下のコードは a, b, c, ... z, aa, ... az, ..., za を
出力します。
//emlist[][ruby]{
("a" .. "za").each do |str|
puts str
end
'a'.upto('za') do |str|
puts str
end
//}
@param max 繰り返しをやめる文字列
@param exclusive max を含むかどうか。false の場... -
Date
# upto(max) {|date| . . . } -> self (18219.0) -
このメソッドは、step(max, 1){|date| ...} と等価です。
...このメソッドは、step(max, 1){|date| ...} と等価です。
@param max 日付オブジェクト
@see Date#step, Date#downto... -
Integer
# upto(max) {|n| . . . } -> Integer (18215.0) -
self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。
...self から max まで 1 ずつ増やしながら繰り返します。
self > max であれば何もしません。
@param max 数値
@return self を返します。
//emlist[][ruby]{
5.upto(10) {|i| print i, " " } # => 5 6 7 8 9 10
//}
@see Integer#downto, Numeric#step, Integer#times... -
Date
# upto(max) -> Enumerator (18119.0) -
このメソッドは、step(max, 1){|date| ...} と等価です。
...このメソッドは、step(max, 1){|date| ...} と等価です。
@param max 日付オブジェクト
@see Date#step, Date#downto... -
Integer
# upto(max) -> Enumerator (18115.0) -
self から max まで 1 ずつ増やしながら繰り返します。 self > max であれば何もしません。
...self から max まで 1 ずつ増やしながら繰り返します。
self > max であれば何もしません。
@param max 数値
@return self を返します。
//emlist[][ruby]{
5.upto(10) {|i| print i, " " } # => 5 6 7 8 9 10
//}
@see Integer#downto, Numeric#step, Integer#times... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (1536.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...およびブロック引数で与えられる Proc は
引数チェックがゆるい。break が例外になる。
Proc.new {|a,b,c| p [a,b,c]}.call(1,2)
=> -:1: wrong # of arguments (2 for 3) (ArgumentError)
from -:1:in `call'......* lambda および proc が返す Proc は引数チェックが厳しい。
break は実行を中断する。
lambda {|a,b,c| p [a,b,c]}.call(1,2)
=> -:1: wrong # of arguments (2 for 3) (ArgumentError)
from -:1:in `call'......586-linux]
3
nil
=> ruby 1.8.0 (2003-07-03) [i586-linux]
nil
nil
: ((<String#upto|String/upto>)) [bug]
String#upto の範囲チェックが辞書順だったバグが修正されました。
現在は、((<String/succ>)) の動作と一致し... -
Numeric (594.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...% | o - o o o - -
& | - - o o - - -
* | - - o o o o o
** |......+ | - - o o o o o
+@ | o - - - - - -
- | - - o o o o o
-@ |......---------------------------------------
upto | - o - - - - -
zero? | o - o - o - -
| | - - o o......------
% | o o o - -
& | - o - - -
* | - o o o o
** | - o o......o
+ | - o o o o
+@ | o - - - -
- | - o o o o
-@ | o o o......-
to_r | - o o o o
to_s | - o o o o
truncate | o o o o -
upto | - o -... -
Benchmark
. # bm(label _ width = 0 , *labels) {|rep| . . . } -> [Benchmark :: Tms] (179.0) -
Benchmark.#benchmark メソッドの引数を簡略化したものです。
...場合に指定します。
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm do |x|
x.report { for i in 1..n; a = "1"; end }
x.report { n.times do ; a = "1"; end }
x.report { 1.upto(n) do ; a = "1"; end }
end
#=>
#
# user system total real
# 1.033333 0.01......ます。
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm(7) do |x|
x.report("for:") { for i in 1..n; a = "1"; end }
x.report("times:") { n.times do ; a = "1"; end }
x.report("upto:") { 1.upto(n) do ; a = "1"; end }
end
#=>
# user system total......3462)
# times: 1.533333 0.016667 1.550000 ( 0.735473)
# upto: 1.500000 0.016667 1.516667 ( 0.711239)
//}
集計を付けた場合
//emlist[][ruby]{
require 'benchmark'
n = 50000
Benchmark.bm(7, ">total:", ">avg:") do |x|
tf = x.report("for:") { for i in 1..n; a = "1"; end }
t... -
Enumerable
# sort _ by {|item| . . . } -> [object] (161.0) -
ブロックの評価結果を <=> メソッドで比較することで、self を昇 順にソートします。ソートされた配列を新たに生成して返します。
...まり、以下とほぼ同じ動作をします。
//emlist[例][ruby]{
class Array
def sort_by
self.map {|i| [yield(i), i] }.
sort {|a, b| a[0] <=> b[0] }.
map {|i| i[1]}
end
end
//}
Enumerable#sort と比較して sort_by が優れている点として、
比較条件が......foo"].sort {|a, b| a.downcase <=> b.downcase }
//}
一方、次のように sort_by を使うと downcase の実行回数は要素数と同じです。
つまり、その部分の実行時間は O(n) のオーダーです。
//emlist[][ruby]{
p ["BAR", "FOO", "bar", "foo"].sort_by {|v| v.downcase....../emlist[][ruby]{
class Integer
def count
$n += 1
self
end
end
ary = []
1.upto(1000) {|v| ary << rand(v) }
$n = 0
ary.sort {|a,b| a.count <=> b.count }
p $n # => 18200
$n = 0
ary.sort_by {|v| v.count }
p $n # => 1000
//}
Enumerable#sort_by は安定ではありませ...