Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Ruby Infinity:仕組みと重要性

Rubyの無限大とは何ですか?

出発点はあるが終わりはないものです。

Rubyでは、この無限の概念を表現できます Float ::INFINITYを使用 定数。

これがどのように役立つのか疑問に思われるかもしれません。

例を挙げて説明しましょう!

算術演算の結果としての無限大

RubyはInfinityを返します 特定の数学演算の結果としてのオブジェクト。

「ゼロ除算」エラーについてはご存知かもしれません。

こちら

1/0
# ZeroDivisionError: divided by 0

しかし…

フロートを使用すると、別のものが得られます:

1/0.0
# Infinity

Infinity

しかし、それだけではありません。

0の除算を試みる場合 0.0による 、その後、別の特別な値を取得します。

ご覧ください

0/0.0
# NaN

このNaNとは何ですか?

これは「数字ではない」という意味で、私が知る限り、この値を見つけることができるのはRubyで唯一の場所です。

これはなぜですか?

これはIEEE754仕様の一部であり、浮動小数点演算の動作を説明しています。

ところで、いくつかの関連する方法があります

  • nan?
  • 有限?
  • 無限?

これらのメソッドを使用して、特別な値を確認できます。

これらのメソッドはFloatsで利用できます。

Ruby 2.4以降では、 finite?も使用できます。 & infinite? 整数を使用します。

無限の範囲を作成する方法

わかりました。

それは面白かったです…もっと例を見てみましょう。

今すぐ範囲があります!

ここに無限の範囲があります

(1..Float::INFINITY).take(10)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

これは、範囲の終わりが事前にわからない場合に役立ちます。

1つの問題…

開始値として数値でのみ機能します。

("a"..Float::INFINITY)
# ArgumentError: bad value for range

解決策は何ですか?

Ruby 2.6では、これを行うことができます

("a"..).take(5)
# ["a", "b", "c", "d", "e"]

はい、それは間違いではありません!この範囲には終了値はなく、開始値は "a"のみです。 、次に2つのドット .. 終わりのない範囲にするためです。

これは新しい構文です。

これを機能させたい場合は、Ruby2.6以降を使用してください。

最大値と最小値としての無限大

Infinityのもう1つの実用的な使用法 ?

ええと…

最大です( Infinity )&最小(-無限大 )Rubyの番号。

これを開始値として使用できます。

ここに例があります

def smallest_percent_size(style, ary_size)
  @smallest_percent ||= Float::INFINITY

  if style == :percent && ary_size < @smallest_percent
    @smallest_percent = ary_size
  end

  @smallest_percent
end

このコードは、オープンソースプロジェクトであるRubocopからのものです。

仕組みは次のとおりです

最小の配列サイズを見つけようとしていますが、 nil を使用しているため、その開始値が必要です。 エラーが発生します。

大きな数字を入力できます &それで十分だといいのですが。

または、 Float ::INFINITYを使用することもできます 、それが可能な最大数であることを知っています。

概要

Rubyの無限大、それが何であるか、どこに表示されるか、およびその使用方法について学習しました。

より多くの人々がそれから利益を得ることができるように、この記事を共有してください。

読んでくれてありがとう!


  1. Ruby on Railsとは何ですか?なぜそれが役立つのですか?

    Ruby on Rails(RoRの場合もある)は、最も人気のあるオープンソースのWebアプリケーションフレームワークです。 Rubyプログラミング言語で構築されています。 Railsを使用すると、単純なものから複雑なものまで、アプリケーションの構築に役立ちます。Railsで実行できることには制限がありません。 フレームワークとは何ですか? フレームワークは、ソフトウェアを作成するときに使用する特定の構造を提供するコード、ツール、およびユーティリティのコレクションです。 この構造により、コードがより整理されます。 正しく使うことを学ぶと、作業が簡単になります。 レールは正確に何を

  2. RubyでStructとOpenStructを使用する方法

    Rubyの構造体とは何ですか? 構造体は組み込みのRubyクラスであり、値オブジェクトを生成する新しいクラスを作成するために使用されます。値オブジェクトは、関連する属性を一緒に格納するために使用されます。 ここに例があります : Point 2つの座標(x &y 。 このデータはさまざまな方法で表すことができます。 いいね : 配列[10, 20] ハッシュ{ x: 10, y: 10 } オブジェクトPoint.new(10, 20) 複数のPointを使用する場合 、オブジェクトアプローチを使用することをお勧めします。 しかし… これら2つの値を一緒に格納するた