Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Range (computer programming)

From Wikipedia, the free encyclopedia
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Range" computer programming – news ·newspapers ·books ·scholar ·JSTOR
(December 2006) (Learn how and when to remove this message)

Incomputer science, the termrange may refer to one of three things:

  1. The possible values that may be stored in avariable.
  2. The upper and lower bounds of anarray.
  3. An alternative toiterator.

Range of a variable

[edit]

The range of a variable is given as the set of possible values that that variable can hold. In the case of an integer, the variable definition is restricted to whole numbers only, and the range will cover every number within its range (including the maximum and minimum). For example, the range of asigned16-bitinteger variable is all the integers from −32,768 to +32,767.

Range of an array

[edit]
Main article:Array data type § Indexing notation

When an array is numerically indexed, its range is the upper and lower bound of the array. Depending on the environment, a warning, afatal exception, or unpredictable behavior will occur if the program attempts to access an array element that is outside the range. In someprogramming languages, such asC, arrays have a fixed lower bound (zero) and will contain data at each position up to the upper bound (so an array with 5 elements will have a range of 0 to 4). In others, such asPHP, an array may have holes where no element is defined, and therefore an array with a range of 0 to 4 will haveup to 5 elements (and a minimum of 2).

Range as an alternative to iterator

[edit]

Another meaning ofrange in computer science is an alternative toiterator. When used in this sense, range is defined as "a pair of begin/end iterators packed together".[1] It is argued[1] that "Ranges are a superior abstraction" (compared to iterators) for several reasons, including better safety.

In particular, such ranges are supported inC++20,[2]Boost C++ Libraries[3] and theD standard library.[4]

Range as a data type

[edit]
A generic class representing a range, it contains a start property and a end property

A data type for ranges can be implemented usinggenerics.

Example inC#.

publicrecordRange<T>(TStart,TEnd)whereT:IComparable;

Example inKotlin.

dataclassRange<T:Comparable<T>>(valstart:T,valend:T)

Example inPHP.

readonlyclassRange<T>{publicfunction__construct(publicT$start,publicT$end,){}}

Example inPython.

fromdataclassesimportdataclass@dataclassclassRange[T]:start:Tend:T

Rust has a built-in range struct in the standard library instd::ops::Range.[5]C++ has astd::ranges library as well sinceC++20.[6]

Range as a operator

[edit]

Rust has the.. and..= operators.

letheartwarming="heartwarming!".to_string();letwarm=&heartwarming[5..9];

Zig also has the.. operator.

// To iterate over consecutive integers, use the range syntax.varsum:usize=0;for(0..5)|i|{sum+=i;}

As doesC#,[7]

string[]items=["one","two","three","four"];string[]firstThreeItems=items[0..2];

F#,[8]

[1..4]// Outputs: [1; 2; 3; 4]

Kotlin,[9]

for(iin1..5)print(i)

andPerl.[10]

for(1..5){print}

Python andPHP does not have any range operator but they do have arange function.[11][12]

See also

[edit]

References

[edit]
  1. ^abAndrei Alexandrescu (6 May 2009)."Iterators Must Go"(PDF). BoostCon 2009. Retrieved29 July 2014.
  2. ^cppreference
  3. ^Boost.Range documentation
  4. ^D Phobos Runtime Library std.range module
  5. ^"Range in std::ops - Rust".doc.rust-lang.org. Retrieved17 October 2024.
  6. ^"Ranges library (since C++20)".cppreference.com. Retrieved11 September 2024.
  7. ^BillWagner (14 November 2023)."Explore ranges of data using indices and ranges - C#".learn.microsoft.com. Retrieved2025-02-22.
  8. ^"Range Operator".F# by example. 17 February 2023. Retrieved2025-02-22.
  9. ^"Ranges and progressions - Kotlin".Kotlin Help. Retrieved2025-02-22.
  10. ^"perlop - Perl expressions: operators, precedence, string literals - Perldoc Browser".perldoc.perl.org. Retrieved2025-02-22.
  11. ^"Built-in Functions".Python documentation. Python Software Foundation. Retrieved17 December 2024.
  12. ^"PHP: range - Manual". The PHP Documentation Group. Retrieved17 December 2024.


Stub icon

Thiscomputer-programming-related article is astub. You can help Wikipedia byexpanding it.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Range_(computer_programming)&oldid=1310815756"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp