Class/Object

org.scalactic.anyvals

NumericChar

Related Docs: object NumericChar | package anyvals

Permalink

final class NumericChar extends AnyVal

An AnyVal for numeric Chars.

Note: a NumericChar has a value between '0' and '9'.

Because NumericChar is an AnyVal it will usually be as efficient as a Char, being boxed only when a Char would have been boxed.

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

scala> import anyvals._
import anyvals._

scala> NumericChar('4')
res0: org.scalactic.anyvals.NumericChar = NumericChar('4')

scala> NumericChar('a')
<console>:14: error: NumericChar.apply can only be invoked on Char literals that are numeric, like NumericChar('4').
              NumericChar('a')
                         ^

NumericChar.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 NumericChar.apply, you'll get a compiler error that suggests you use a different factory method, NumericChar.from, instead:

scala> val x = '1'
x: Char = 1

scala> NumericChar(x)
<console>:15: error: NumericChar.apply can only be invoked on Char literals that are numeric, like NumericChar('4'). Please use NumericChar.from instead.
              NumericChar(x)
                         ^

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

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

scala> val y = 'a'
y: Char = a

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

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

scala> def invert(ch: NumericChar): Char = ('9' - ch + '0').toChar
invert: (ch: org.scalactic.anyvals.NumericChar)Char

scala> invert('1')
res6: Char = 8

scala> scala> invert('9')
res7: Char = 0

scala> invert('a')
<console>:12: error: NumericChar.apply can only be invoked on Char literals that are numeric, like NumericChar('4').
              invert('a')
                     ^

Source
NumericChar.scala
Linear Supertypes
AnyVal, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NumericChar
  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): Int

    Permalink

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

  7. def %(x: Char): Int

    Permalink

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

  8. def %(x: Short): Int

    Permalink

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

  9. def %(x: Byte): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    Permalink

    Returns the product of this value and x.

  19. def *(x: Char): Int

    Permalink

    Returns the product of this value and x.

  20. def *(x: Short): Int

    Permalink

    Returns the product of this value and x.

  21. def *(x: Byte): Int

    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): Int

    Permalink

    Returns the sum of this value and x.

  26. def +(x: Char): Int

    Permalink

    Returns the sum of this value and x.

  27. def +(x: Short): Int

    Permalink

    Returns the sum of this value and x.

  28. def +(x: Byte): Int

    Permalink

    Returns the sum of this value and x.

  29. def +(x: String): String

    Permalink

    Prepends this NumericChar's value to a string.

    Prepends this NumericChar's value to a 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): Int

    Permalink

    Returns the difference of this value and x.

  34. def -(x: Char): Int

    Permalink

    Returns the difference of this value and x.

  35. def -(x: Short): Int

    Permalink

    Returns the difference of this value and x.

  36. def -(x: Byte): Int

    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): Int

    Permalink

    Returns the quotient of this value and x.

  41. def /(x: Char): Int

    Permalink

    Returns the quotient of this value and x.

  42. def /(x: Short): Int

    Permalink

    Returns the quotient of this value and x.

  43. def /(x: Byte): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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): Int

    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. def asDigit: Int

    Permalink
  85. def asDigitPosZInt: PosZInt

    Permalink
  86. final def asInstanceOf[T0]: T0

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

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

    Permalink
    Definition Classes
    Any
  89. def max(that: NumericChar): NumericChar

    Permalink
  90. def min(that: NumericChar): NumericChar

    Permalink
  91. def toByte: Byte

    Permalink

    Converts this NumericChar to a Byte.

    Converts this NumericChar to a Byte.

  92. def toChar: Char

    Permalink

    Converts this NumericChar to a Char.

    Converts this NumericChar to a Char.

  93. def toDouble: Double

    Permalink

    Converts this NumericChar to a Double.

    Converts this NumericChar to a Double.

  94. def toFloat: Float

    Permalink

    Converts this NumericChar to a Float.

    Converts this NumericChar to a Float.

  95. def toInt: Int

    Permalink

    Converts this NumericChar to an Int.

    Converts this NumericChar to an Int.

  96. def toLong: Long

    Permalink

    Converts this NumericChar to a Long.

    Converts this NumericChar to a Long.

  97. def toShort: Short

    Permalink

    Converts this NumericChar to a Short.

    Converts this NumericChar to a Short.

  98. def toString(): String

    Permalink

    A string representation of this NumericChar.

    A string representation of this NumericChar.

    Definition Classes
    NumericChar → Any
  99. def unary_+: NumericChar

    Permalink

    Returns this value, unmodified.

  100. def unary_-: NegZInt

    Permalink

    Returns the negation of this value.

  101. def unary_~: Int

    Permalink

    Returns the bitwise negation of this value.

    Returns the bitwise negation of this value.

    Example:
    1. ~5 == -6
      // in binary: ~00000101 ==
      //             11111010
  102. val value: Char

    Permalink

    The Char value underlying this NumericChar.

    The Char value underlying this NumericChar.

  103. 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
  104. def |(x: Int): Int

    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
  105. def |(x: Char): Int

    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
  106. def |(x: Short): Int

    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
  107. def |(x: Byte): Int

    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