Class/Object

org.scalactic.anyvals

PosLong

Related Docs: object PosLong | package anyvals

Permalink

final class PosLong extends AnyVal

An AnyVal for positive Longs.

Note: a PosLong may not equal 0. If you want positive number or 0, use PosZLong.

Because PosLong is an AnyVal it will usually be as efficient as an Long, being boxed only when an Long would have been boxed.

The PosLong.apply factory method is implemented in terms of a macro that checks literals for validity at compile time. Calling PosLong.apply with a literal Long value will either produce a valid PosLong instance at run time or an error at compile time. Here's an example:

scala> import anyvals._
import anyvals._

scala> PosLong(1L)
res0: org.scalactic.anyvals.PosLong = PosLong(1)

scala> PosLong(0L)
<console>:14: error: PosLong.apply can only be invoked on a positive (i > 0L) integer literal, like PosLong(42L).
              PosLong(0L)
                     ^

PosLong.apply cannot be used if the value being passed is a variable (i.e., not a literal), because the macro cannot determine the validity of variables at compile time (just literals). If you try to pass a variable to PosLong.apply, you'll get a compiler error that suggests you use a different factor method, PosLong.from, instead:

scala> val x = 1L
x: Long = 1

scala> PosLong(x)
<console>:15: error: PosLong.apply can only be invoked on an integer literal, like PosLong(42L). Please use PosLong.from instead.
              PosLong(x)
                     ^

The PosLong.from factory method will inspect the value at runtime and return an Option[PosLong]. If the value is valid, PosLong.from will return a Some[PosLong], else it will return a None. Here's an example:

scala> PosLong.from(x)
res3: Option[org.scalactic.anyvals.PosLong] = Some(PosLong(1))

scala> val y = 0L
y: Long = 0

scala> PosLong.from(y)
res4: Option[org.scalactic.anyvals.PosLong] = None

The PosLong.apply factory method is marked implicit, so that you can pass literal Longs into methods that require PosLong, and get the same compile-time checking you get when calling PosLong.apply explicitly. Here's an example:

scala> def invert(pos: PosLong): Long = Long.MaxValue - pos
invert: (pos: org.scalactic.anyvals.PosLong)Long

scala> invert(1L)
res5: Long = 9223372036854775806

scala> invert(Long.MaxValue)
res6: Long = 0

scala> invert(0L)
<console>:15: error: PosLong.apply can only be invoked on a positive (i > 0L) integer literal, like PosLong(42L).
              invert(0L)
                     ^

scala> invert(-1L)
<console>:15: error: PosLong.apply can only be invoked on a positive (i > 0L) integer literal, like PosLong(42L).
              invert(-1L)
                      ^

This example also demonstrates that the PosLong companion object also defines implicit widening conversions when either no loss of precision will occur or a similar conversion is provided in Scala. (For example, the implicit conversion from Long to Double in Scala can lose precision.) This makes it convenient to use a PosLong where a Long or wider type is needed. An example is the subtraction in the body of the invert method defined above, Long.MaxValue - pos. Although Long.MaxValue is a Long, which has no - method that takes a PosLong (the type of pos), you can still subtract pos, because the PosLong will be implicitly widened to Long.

Source
PosLong.scala
Linear Supertypes
AnyVal, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PosLong
  2. AnyVal
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. def %(x: Double): Double

    Permalink

    Returns the remainder of the division of this value by x.

  4. def %(x: Float): Float

    Permalink

    Returns the remainder of the division of this value by x.

  5. def %(x: Long): Long

    Permalink

    Returns the remainder of the division of this value by x.

  6. def %(x: Int): Long

    Permalink

    Returns the remainder of the division of this value by x.

  7. def %(x: Char): Long

    Permalink

    Returns the remainder of the division of this value by x.

  8. def %(x: Short): Long

    Permalink

    Returns the remainder of the division of this value by x.

  9. def %(x: Byte): Long

    Permalink

    Returns the remainder of the division of this value by x.

  10. def &(x: Long): Long

    Permalink

    Returns the bitwise AND of this value and x.

    Returns the bitwise AND of this value and x.

    Example:
    1. (0xf0 & 0xaa) == 0xa0
      // in binary:   11110000
      //            & 10101010
      //              --------
      //              10100000
  11. def &(x: Int): Long

    Permalink

    Returns the bitwise AND of this value and x.

    Returns the bitwise AND of this value and x.

    Example:
    1. (0xf0 & 0xaa) == 0xa0
      // in binary:   11110000
      //            & 10101010
      //              --------
      //              10100000
  12. def &(x: Char): Long

    Permalink

    Returns the bitwise AND of this value and x.

    Returns the bitwise AND of this value and x.

    Example:
    1. (0xf0 & 0xaa) == 0xa0
      // in binary:   11110000
      //            & 10101010
      //              --------
      //              10100000
  13. def &(x: Short): Long

    Permalink

    Returns the bitwise AND of this value and x.

    Returns the bitwise AND of this value and x.

    Example:
    1. (0xf0 & 0xaa) == 0xa0
      // in binary:   11110000
      //            & 10101010
      //              --------
      //              10100000
  14. def &(x: Byte): Long

    Permalink

    Returns the bitwise AND of this value and x.

    Returns the bitwise AND of this value and x.

    Example:
    1. (0xf0 & 0xaa) == 0xa0
      // in binary:   11110000
      //            & 10101010
      //              --------
      //              10100000
  15. def *(x: Double): Double

    Permalink

    Returns the product of this value and x.

  16. def *(x: Float): Float

    Permalink

    Returns the product of this value and x.

  17. def *(x: Long): Long

    Permalink

    Returns the product of this value and x.

  18. def *(x: Int): Long

    Permalink

    Returns the product of this value and x.

  19. def *(x: Char): Long

    Permalink

    Returns the product of this value and x.

  20. def *(x: Short): Long

    Permalink

    Returns the product of this value and x.

  21. def *(x: Byte): Long

    Permalink

    Returns the product of this value and x.

  22. def +(x: Double): Double

    Permalink

    Returns the sum of this value and x.

  23. def +(x: Float): Float

    Permalink

    Returns the sum of this value and x.

  24. def +(x: Long): Long

    Permalink

    Returns the sum of this value and x.

  25. def +(x: Int): Long

    Permalink

    Returns the sum of this value and x.

  26. def +(x: Char): Long

    Permalink

    Returns the sum of this value and x.

  27. def +(x: Short): Long

    Permalink

    Returns the sum of this value and x.

  28. def +(x: Byte): Long

    Permalink

    Returns the sum of this value and x.

  29. def +(x: String): String

    Permalink

    Converts this PosLong's value to a string then concatenates the given string.

    Converts this PosLong's value to a string then concatenates the given string.

  30. def -(x: Double): Double

    Permalink

    Returns the difference of this value and x.

  31. def -(x: Float): Float

    Permalink

    Returns the difference of this value and x.

  32. def -(x: Long): Long

    Permalink

    Returns the difference of this value and x.

  33. def -(x: Int): Long

    Permalink

    Returns the difference of this value and x.

  34. def -(x: Char): Long

    Permalink

    Returns the difference of this value and x.

  35. def -(x: Short): Long

    Permalink

    Returns the difference of this value and x.

  36. def -(x: Byte): Long

    Permalink

    Returns the difference of this value and x.

  37. def /(x: Double): Double

    Permalink

    Returns the quotient of this value and x.

  38. def /(x: Float): Float

    Permalink

    Returns the quotient of this value and x.

  39. def /(x: Long): Long

    Permalink

    Returns the quotient of this value and x.

  40. def /(x: Int): Long

    Permalink

    Returns the quotient of this value and x.

  41. def /(x: Char): Long

    Permalink

    Returns the quotient of this value and x.

  42. def /(x: Short): Long

    Permalink

    Returns the quotient of this value and x.

  43. def /(x: Byte): Long

    Permalink

    Returns the quotient of this value and x.

  44. def <(x: Double): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  45. def <(x: Float): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  46. def <(x: Long): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  47. def <(x: Int): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  48. def <(x: Char): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  49. def <(x: Short): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  50. def <(x: Byte): Boolean

    Permalink

    Returns true if this value is less than x, false otherwise.

  51. def <<(x: Long): Long

    Permalink

    Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.

    Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.

    Example:
    1. 6 << 3 == 48 // in binary: 0110 << 3 == 0110000
  52. def <<(x: Int): Long

    Permalink

    Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.

    Returns this value bit-shifted left by the specified number of bits, filling in the new right bits with zeroes.

    Example:
    1. 6 << 3 == 48 // in binary: 0110 << 3 == 0110000
  53. def <=(x: Double): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  54. def <=(x: Float): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  55. def <=(x: Long): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  56. def <=(x: Int): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  57. def <=(x: Char): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  58. def <=(x: Short): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  59. def <=(x: Byte): Boolean

    Permalink

    Returns true if this value is less than or equal to x, false otherwise.

  60. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  61. def >(x: Double): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  62. def >(x: Float): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  63. def >(x: Long): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  64. def >(x: Int): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  65. def >(x: Char): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  66. def >(x: Short): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  67. def >(x: Byte): Boolean

    Permalink

    Returns true if this value is greater than x, false otherwise.

  68. def >=(x: Double): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  69. def >=(x: Float): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  70. def >=(x: Long): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  71. def >=(x: Int): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  72. def >=(x: Char): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  73. def >=(x: Short): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  74. def >=(x: Byte): Boolean

    Permalink

    Returns true if this value is greater than or equal to x, false otherwise.

  75. def >>(x: Long): Long

    Permalink

    Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this.

    Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this. The effect of this is to retain the sign of the value.

    Example:
    1. -21 >> 3 == -3
      // in binary: 11111111 11111111 11111111 11101011 >> 3 ==
      //            11111111 11111111 11111111 11111101
  76. def >>(x: Int): Long

    Permalink

    Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this.

    Returns this value bit-shifted left by the specified number of bits, filling in the right bits with the same value as the left-most bit of this. The effect of this is to retain the sign of the value.

    Example:
    1. -21 >> 3 == -3
      // in binary: 11111111 11111111 11111111 11101011 >> 3 ==
      //            11111111 11111111 11111111 11111101
  77. def >>>(x: Long): Long

    Permalink

    Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.

    Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.

    Examples:
    1. -21 >>> 3 == 536870909
      // in binary: 11111111 11111111 11111111 11101011 >>> 3 ==
      //            00011111 11111111 11111111 11111101
    2. ,
    3. 21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
  78. def >>>(x: Int): Long

    Permalink

    Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.

    Returns this value bit-shifted right by the specified number of bits, filling the new left bits with zeroes.

    Examples:
    1. -21 >>> 3 == 536870909
      // in binary: 11111111 11111111 11111111 11101011 >>> 3 ==
      //            00011111 11111111 11111111 11111101
    2. ,
    3. 21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
  79. def ^(x: Long): Long

    Permalink

    Returns the bitwise XOR of this value and x.

    Returns the bitwise XOR of this value and x.

    Example:
    1. (0xf0 ^ 0xaa) == 0x5a
      // in binary:   11110000
      //            ^ 10101010
      //              --------
      //              01011010
  80. def ^(x: Int): Long

    Permalink

    Returns the bitwise XOR of this value and x.

    Returns the bitwise XOR of this value and x.

    Example:
    1. (0xf0 ^ 0xaa) == 0x5a
      // in binary:   11110000
      //            ^ 10101010
      //              --------
      //              01011010
  81. def ^(x: Char): Long

    Permalink

    Returns the bitwise XOR of this value and x.

    Returns the bitwise XOR of this value and x.

    Example:
    1. (0xf0 ^ 0xaa) == 0x5a
      // in binary:   11110000
      //            ^ 10101010
      //              --------
      //              01011010
  82. def ^(x: Short): Long

    Permalink

    Returns the bitwise XOR of this value and x.

    Returns the bitwise XOR of this value and x.

    Example:
    1. (0xf0 ^ 0xaa) == 0x5a
      // in binary:   11110000
      //            ^ 10101010
      //              --------
      //              01011010
  83. def ^(x: Byte): Long

    Permalink

    Returns the bitwise XOR of this value and x.

    Returns the bitwise XOR of this value and x.

    Example:
    1. (0xf0 ^ 0xaa) == 0x5a
      // in binary:   11110000
      //            ^ 10101010
      //              --------
      //              01011010
  84. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  85. def getClass(): Class[_ <: AnyVal]

    Permalink
    Definition Classes
    AnyVal → Any
  86. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  87. def max(that: PosLong): PosLong

    Permalink

    Returns this if this > that or that otherwise.

    Returns this if this > that or that otherwise.

  88. def min(that: PosLong): PosLong

    Permalink

    Returns this if this < that or that otherwise.

    Returns this if this < that or that otherwise.

  89. def to(end: Long, step: Long): Inclusive[Long]

    Permalink

    Create an inclusive Range from this PosLong value to the specified end with the specified step value.

    Create an inclusive Range from this PosLong value to the specified end with the specified step value.

    end

    The final bound of the range to make.

    step

    The number to increase by for each step of the range.

    returns

    A scala.collection.immutable.NumericRange.Inclusive[Long] from this up to and including end.

  90. def to(end: Long): Inclusive[Long]

    Permalink

    Create an inclusive Range from this PosLong value to the specified end with step value 1.

    Create an inclusive Range from this PosLong value to the specified end with step value 1.

    end

    The final bound of the range to make.

    returns

    A scala.collection.immutable.NumericRange.Inclusive[Long] from this up to and including end.

  91. def toBinaryString: String

    Permalink

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 2.

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 2.

    The unsigned long value is this PosLong's underlying Long plus 264 if the underlying Long is negative; otherwise, it is equal to the underlying Long. This value is converted to a string of ASCII digits in binary (base 2) with no extra leading 0s. If the unsigned magnitude is zero, it is represented by a single zero character '0' ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The characters '0' ('\u0030') and '1' ('\u0031') are used as binary digits.

    returns

    the string representation of the unsigned long value represented by this PosLong's underlying Long in binary (base 2).

  92. def toByte: Byte

    Permalink

    Converts this PosLong to a Byte.

    Converts this PosLong to a Byte.

  93. def toChar: Char

    Permalink

    Converts this PosLong to a Char.

    Converts this PosLong to a Char.

  94. def toDouble: Double

    Permalink

    Converts this PosLong to a Double.

    Converts this PosLong to a Double.

  95. def toFloat: Float

    Permalink

    Converts this PosLong to a Float.

    Converts this PosLong to a Float.

  96. def toHexString: String

    Permalink

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 16.

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 16.

    The unsigned long value is this PosLong's underlying Long plus 264 if the underlying Long is negative; otherwise, it is equal to the underlying Long. This value is converted to a string of ASCII digits in hexadecimal (base 16) with no extra leading 0s. If the unsigned magnitude is zero, it is represented by a single zero character '0' ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The following characters are used as hexadecimal digits:

    0123456789abcdef

    These are the characters '\u0030' through '\u0039' and '\u0061' through '\u0066'. If uppercase letters are desired, the toUpperCase method may be called on the result.

    returns

    the string representation of the unsigned long value represented by this PosLong's underlying Long in hexadecimal (base 16).

  97. def toInt: Int

    Permalink

    Converts this PosLong to an Int.

    Converts this PosLong to an Int.

  98. def toLong: Long

    Permalink

    Converts this PosLong to a Long.

    Converts this PosLong to a Long.

  99. def toOctalString: String

    Permalink

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 8.

    Returns a string representation of this PosLong's underlying Long as an unsigned integer in base 8.

    The unsigned long value is this PosLong's underlying Long plus 264 if the underlying Long is negative; otherwise, it is equal to the underlying Long. This value is converted to a string of ASCII digits in octal (base 8) with no extra leading 0s.

    If the unsigned magnitude is zero, it is represented by a single zero character '0' ('\u0030'); otherwise, the first character of the representation of the unsigned magnitude will not be the zero character. The following characters are used as octal digits:

    01234567

    These are the characters '\u0030' through '\u0037'.

    returns

    the string representation of the unsigned long value represented by this PosLong's underlying Long in octal (base 8).

  100. def toShort: Short

    Permalink

    Converts this PosLong to a Short.

    Converts this PosLong to a Short.

  101. def toString(): String

    Permalink

    A string representation of this PosLong.

    A string representation of this PosLong.

    Definition Classes
    PosLong → Any
  102. def unary_+: PosLong

    Permalink

    Returns this value, unmodified.

  103. def unary_-: Long

    Permalink

    Returns the negation of this value.

  104. def unary_~: Long

    Permalink

    Returns the bitwise negation of this value.

    Returns the bitwise negation of this value.

    Example:
    1. ~5 == -6
      // in binary: ~00000101 ==
      //             11111010
  105. def until(end: Long, step: Long): Exclusive[Long]

    Permalink

    Create a Range from this PosLong value until the specified end (exclusive) with the specified step value.

    Create a Range from this PosLong value until the specified end (exclusive) with the specified step value.

    end

    The final bound of the range to make.

    step

    The number to increase by for each step of the range.

    returns

    A scala.collection.immutable.NumericRange.Exclusive[Long] from this up to but not including end.

  106. def until(end: Long): Exclusive[Long]

    Permalink

    Create a Range from this PosLong value until the specified end (exclusive) with step value 1.

    Create a Range from this PosLong value until the specified end (exclusive) with step value 1.

    end

    The final bound of the range to make.

    returns

    A scala.collection.immutable.NumericRange.Exclusive[Long] from this up to but not including end.

  107. val value: Long

    Permalink

    The Long value underlying this PosLong.

    The Long value underlying this PosLong.

  108. def |(x: Long): Long

    Permalink

    Returns the bitwise OR of this value and x.

    Returns the bitwise OR of this value and x.

    Example:
    1. (0xf0 | 0xaa) == 0xfa
      // in binary:   11110000
      //            | 10101010
      //              --------
      //              11111010
  109. def |(x: Int): Long

    Permalink

    Returns the bitwise OR of this value and x.

    Returns the bitwise OR of this value and x.

    Example:
    1. (0xf0 | 0xaa) == 0xfa
      // in binary:   11110000
      //            | 10101010
      //              --------
      //              11111010
  110. def |(x: Char): Long

    Permalink

    Returns the bitwise OR of this value and x.

    Returns the bitwise OR of this value and x.

    Example:
    1. (0xf0 | 0xaa) == 0xfa
      // in binary:   11110000
      //            | 10101010
      //              --------
      //              11111010
  111. def |(x: Short): Long

    Permalink

    Returns the bitwise OR of this value and x.

    Returns the bitwise OR of this value and x.

    Example:
    1. (0xf0 | 0xaa) == 0xfa
      // in binary:   11110000
      //            | 10101010
      //              --------
      //              11111010
  112. def |(x: Byte): Long

    Permalink

    Returns the bitwise OR of this value and x.

    Returns the bitwise OR of this value and x.

    Example:
    1. (0xf0 | 0xaa) == 0xfa
      // in binary:   11110000
      //            | 10101010
      //              --------
      //              11111010

Inherited from AnyVal

Inherited from Any

Ungrouped