66件ヒット
[1-66件を表示]
(0.024秒)
別のキーワード
種類
- インスタンスメソッド (44)
- 文書 (11)
- クラス (11)
ライブラリ
- ビルトイン (33)
- bigdecimal (11)
- matrix (11)
クラス
- BigDecimal (11)
- Matrix (11)
- Numeric (11)
- Rational (11)
検索結果
先頭5件
-
Rational
# coerce(other) -> Array (39125.0) -
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という 配列にして返します。
...other が同じクラスになるよう、自身か other を変換し [other, self] という
配列にして返します。
@param other 比較または変換するオブジェクト
//emlist[例][ruby]{
Rational(1).coerce(2) # => [(2/1), (1/1)]
Rational(1).coerce(2.2) # => [2.2, 1.0]
//}... -
Numeric
# coerce(other) -> [Numeric] (18167.0) -
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。
...ければなりません。
以下は Rational の coerce のソースです。other が自身の知らない数値クラスであった場合、
super を呼んでいることに注意して下さい。
//emlist[例][ruby]{
# lib/rational.rb より
def coerce(other)
if other.kind_of?(Float)......turn Rational.new!(other, 1), self
else
super
end
end
//}
数値クラスの算術演算子は通常自分と演算できないクラスをオペランドとして受け
取ると coerce を使って自分とオペランドを変換した上で演算を行います。
以下は Rational の......数が自身の知らない数値クラスである場合、引数の coerce により自身を変換してから
+ 演算子を呼んでいます。
//emlist[例][ruby]{
# lib/rational.rb より
def + (a)
if a.kind_of?(Rational)
# 長いので省略
elsif a.kind_of?(Integer)
# 長い... -
BigDecimal
# coerce(other) -> Array (18119.0) -
self と other が同じクラスになるよう、self か other を変換し [other, self] という配列にして返します。
...ther 比較または変換するオブジェクト
BigDecimal#coerce は Ruby における強制型変換のための機能です。
BigDecimal オブジェクトとその他のオブジェクト間の各種の計算は
BigDecimal#coerce の結果を元に行われます。
//emlist[][ruby]{
requi......re "bigdecimal"
a = BigDecimal("1.0")
b = a / 2.0 # => 0.5e0
//}
other に Rational オブジェクトを指定した場合は self の有効桁数を
用いて変換を行います。
数値を表す文字列から BigDecimal オブジェクトに変換する機能はデフォ
ルトでは無効... -
Matrix
# coerce(other) -> Array (18113.0) -
他の数値オブジェクトとの変換を行います。
...との組を配列として返します。
@param other 変換する数値オブジェクト
//emlist[例][ruby]{
require 'matrix'
a1 = [1, 2]
a2 = [-1.25, 2.2]
m = Matrix[a1, a2]
r = Rational(1, 2)
p m.coerce(r) #=> [#<Matrix::Scalar:0x832df18 @value=(1/2)>, Matrix[[1, 2], [-1.25, 2.2]]]
//}... -
Numeric (72.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...いるメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれば、数値クラスのそのほかのメソッドが
適切に定義されることを意図して提供されています......す。
効率のため Numeric のメソッドと同じメソッドがサブクラスで再定義されている場合があります。
Numeric#coerce メソッドを使うことによって異なる数値クラス間で演算を行うこともできます。
=== 数値関連のメソッドを......。
=> ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
Numeric Integer Fixnum Bignum Float Rational Complex
-------------------------------------------------------------------------------------------
% |......てください。
=> ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-darwin15]
Numeric Integer Float Rational Complex
--------------------------------------------------------------------------------
% | o o... -
Ruby用語集 (60.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...e。
Bundler 自体も gem として配布されているが、Ruby 2.6 で標準添付
ライブラリーに追加された。
===[a:C] C
: Coerce
異なるクラスの値同士の演算を効率よく実装するための手法の一つ。
例えば新しい数値クラス N を定義......身を引数に
まず相手側の N#coerce を呼ぶ。N#coerce では self と引数を、既に加算が定義された
オブジェクトのペアに変換して返す。Integer 側ではそれらの加算を行う。
この方法では、N#coerce さえ適切に定義しておけば、Int......学用語の整数ではなく Integer
クラスのインスタンスを指すことが多いので注意。
例えば 1.0(Float)、1r(Rational)、1+0i(Complex)はいずれも
数学的には 1 を表しており、整数であるが、Integer オブジェクトではない。...