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. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##: Int
    Definition Classes
    Any
  3. def %(x: Double): Double

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

  4. def %(x: Float): Float

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

  5. def %(x: Long): Long

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

  6. def %(x: Int): Int

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

  7. def %(x: Char): Int

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

  8. def %(x: Short): Int

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

  9. def %(x: Byte): Int

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

  10. def &(x: Long): Long

    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

    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

    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

    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

    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

    Returns the product of this value and x.

  16. def *(x: Float): Float

    Returns the product of this value and x.

  17. def *(x: Long): Long

    Returns the product of this value and x.

  18. def *(x: Int): Int

    Returns the product of this value and x.

  19. def *(x: Char): Int

    Returns the product of this value and x.

  20. def *(x: Short): Int

    Returns the product of this value and x.

  21. def *(x: Byte): Int

    Returns the product of this value and x.

  22. def +(x: Double): Double

    Returns the sum of this value and x.

  23. def +(x: Float): Float

    Returns the sum of this value and x.

  24. def +(x: Long): Long

    Returns the sum of this value and x.

  25. def +(x: Int): Int

    Returns the sum of this value and x.

  26. def +(x: Char): Int

    Returns the sum of this value and x.

  27. def +(x: Short): Int

    Returns the sum of this value and x.

  28. def +(x: Byte): Int

    Returns the sum of this value and x.

  29. def +(x: String): String

    Prepends this NumericChar's value to a string.

  30. def -(x: Double): Double

    Returns the difference of this value and x.

  31. def -(x: Float): Float

    Returns the difference of this value and x.

  32. def -(x: Long): Long

    Returns the difference of this value and x.

  33. def -(x: Int): Int

    Returns the difference of this value and x.

  34. def -(x: Char): Int

    Returns the difference of this value and x.

  35. def -(x: Short): Int

    Returns the difference of this value and x.

  36. def -(x: Byte): Int

    Returns the difference of this value and x.

  37. def /(x: Double): Double

    Returns the quotient of this value and x.

  38. def /(x: Float): Float

    Returns the quotient of this value and x.

  39. def /(x: Long): Long

    Returns the quotient of this value and x.

  40. def /(x: Int): Int

    Returns the quotient of this value and x.

  41. def /(x: Char): Int

    Returns the quotient of this value and x.

  42. def /(x: Short): Int

    Returns the quotient of this value and x.

  43. def /(x: Byte): Int

    Returns the quotient of this value and x.

  44. def <(x: Double): Boolean

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

  45. def <(x: Float): Boolean

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

  46. def <(x: Long): Boolean

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

  47. def <(x: Int): Boolean

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

  48. def <(x: Char): Boolean

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

  49. def <(x: Short): Boolean

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

  50. def <(x: Byte): Boolean

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

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

    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

    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

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

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

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

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

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

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

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

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

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

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

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

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

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

  60. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  61. def >(x: Double): Boolean

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

  62. def >(x: Float): Boolean

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

  63. def >(x: Long): Boolean

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

  64. def >(x: Int): Boolean

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

  65. def >(x: Char): Boolean

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

  66. def >(x: Short): Boolean

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

  67. def >(x: Byte): Boolean

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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

    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

    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 == 2 // in binary: 010101 >>> 3 == 010
    2. ,
    3. -21 >>> 3 == 536870909
      // in binary: 11111111 11111111 11111111 11101011 >>> 3 ==
      //            00011111 11111111 11111111 11111101
  78. def >>>(x: Int): Int

    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 == 2 // in binary: 010101 >>> 3 == 010
    2. ,
    3. -21 >>> 3 == 536870909
      // in binary: 11111111 11111111 11111111 11101011 >>> 3 ==
      //            00011111 11111111 11111111 11111101
  79. def ^(x: Long): Long

    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

    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

    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

    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

    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
  85. def asDigitPosZInt: PosZInt
  86. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  87. def getClass(): Class[_ <: AnyVal]
    Definition Classes
    AnyVal → Any
  88. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  89. def max(that: NumericChar): NumericChar
  90. def min(that: NumericChar): NumericChar
  91. def toByte: Byte

    Converts this NumericChar to a Byte.

  92. def toChar: Char

    Converts this NumericChar to a Char.

  93. def toDouble: Double

    Converts this NumericChar to a Double.

  94. def toFloat: Float

    Converts this NumericChar to a Float.

  95. def toInt: Int

    Converts this NumericChar to an Int.

  96. def toLong: Long

    Converts this NumericChar to a Long.

  97. def toShort: Short

    Converts this NumericChar to a Short.

  98. def toString(): String

    A string representation of this NumericChar.

    A string representation of this NumericChar.

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

    Returns this value, unmodified.

  100. def unary_-: NegZInt

    Returns the negation of this value.

  101. def unary_~: Int

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

    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

    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

    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

    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

    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