final class NumericChar extends AnyVal
An AnyVal
for numeric Char
s.
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 Char
s 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
- Alphabetic
- By Inheritance
- NumericChar
- AnyVal
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
##(): Int
- Definition Classes
- Any
-
def
%(x: Double): Double
Returns the remainder of the division of this value by
x
. -
def
%(x: Float): Float
Returns the remainder of the division of this value by
x
. -
def
%(x: Long): Long
Returns the remainder of the division of this value by
x
. -
def
%(x: Int): Int
Returns the remainder of the division of this value by
x
. -
def
%(x: Char): Int
Returns the remainder of the division of this value by
x
. -
def
%(x: Short): Int
Returns the remainder of the division of this value by
x
. -
def
%(x: Byte): Int
Returns the remainder of the division of this value by
x
. -
def
&(x: Long): Long
Returns the bitwise AND of this value and
x
.Returns the bitwise AND of this value and
x
.(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Example: -
def
&(x: Int): Int
Returns the bitwise AND of this value and
x
.Returns the bitwise AND of this value and
x
.(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Example: -
def
&(x: Char): Int
Returns the bitwise AND of this value and
x
.Returns the bitwise AND of this value and
x
.(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Example: -
def
&(x: Short): Int
Returns the bitwise AND of this value and
x
.Returns the bitwise AND of this value and
x
.(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Example: -
def
&(x: Byte): Int
Returns the bitwise AND of this value and
x
.Returns the bitwise AND of this value and
x
.(0xf0 & 0xaa) == 0xa0 // in binary: 11110000 // & 10101010 // -------- // 10100000
Example: -
def
*(x: Double): Double
Returns the product of this value and
x
. -
def
*(x: Float): Float
Returns the product of this value and
x
. -
def
*(x: Long): Long
Returns the product of this value and
x
. -
def
*(x: Int): Int
Returns the product of this value and
x
. -
def
*(x: Char): Int
Returns the product of this value and
x
. -
def
*(x: Short): Int
Returns the product of this value and
x
. -
def
*(x: Byte): Int
Returns the product of this value and
x
. -
def
+(x: Double): Double
Returns the sum of this value and
x
. -
def
+(x: Float): Float
Returns the sum of this value and
x
. -
def
+(x: Long): Long
Returns the sum of this value and
x
. -
def
+(x: Int): Int
Returns the sum of this value and
x
. -
def
+(x: Char): Int
Returns the sum of this value and
x
. -
def
+(x: Short): Int
Returns the sum of this value and
x
. -
def
+(x: Byte): Int
Returns the sum of this value and
x
. -
def
+(x: String): String
Prepends this
NumericChar
's value to a string. -
def
-(x: Double): Double
Returns the difference of this value and
x
. -
def
-(x: Float): Float
Returns the difference of this value and
x
. -
def
-(x: Long): Long
Returns the difference of this value and
x
. -
def
-(x: Int): Int
Returns the difference of this value and
x
. -
def
-(x: Char): Int
Returns the difference of this value and
x
. -
def
-(x: Short): Int
Returns the difference of this value and
x
. -
def
-(x: Byte): Int
Returns the difference of this value and
x
. -
def
/(x: Double): Double
Returns the quotient of this value and
x
. -
def
/(x: Float): Float
Returns the quotient of this value and
x
. -
def
/(x: Long): Long
Returns the quotient of this value and
x
. -
def
/(x: Int): Int
Returns the quotient of this value and
x
. -
def
/(x: Char): Int
Returns the quotient of this value and
x
. -
def
/(x: Short): Int
Returns the quotient of this value and
x
. -
def
/(x: Byte): Int
Returns the quotient of this value and
x
. -
def
<(x: Double): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Float): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Long): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Int): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Char): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Short): Boolean
Returns
true
if this value is less than x,false
otherwise. -
def
<(x: Byte): Boolean
Returns
true
if this value is less than x,false
otherwise. -
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.
6 << 3 == 48 // in binary: 0110 << 3 == 0110000
Example: -
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.
6 << 3 == 48 // in binary: 0110 << 3 == 0110000
Example: -
def
<=(x: Double): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Float): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Long): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Int): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Char): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Short): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
def
<=(x: Byte): Boolean
Returns
true
if this value is less than or equal to x,false
otherwise. -
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
-
def
>(x: Double): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Float): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Long): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Int): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Char): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Short): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>(x: Byte): Boolean
Returns
true
if this value is greater than x,false
otherwise. -
def
>=(x: Double): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Float): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Long): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Int): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Char): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Short): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
def
>=(x: Byte): Boolean
Returns
true
if this value is greater than or equal to x,false
otherwise. -
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.
-21 >> 3 == -3 // in binary: 11111111 11111111 11111111 11101011 >> 3 == // 11111111 11111111 11111111 11111101
Example: -
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.
-21 >> 3 == -3 // in binary: 11111111 11111111 11111111 11101011 >> 3 == // 11111111 11111111 11111111 11111101
Example: -
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.
21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
, -21 >>> 3 == 536870909 // in binary: 11111111 11111111 11111111 11101011 >>> 3 == // 00011111 11111111 11111111 11111101
Examples: -
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.
21 >>> 3 == 2 // in binary: 010101 >>> 3 == 010
, -21 >>> 3 == 536870909 // in binary: 11111111 11111111 11111111 11101011 >>> 3 == // 00011111 11111111 11111111 11111101
Examples: -
def
^(x: Long): Long
Returns the bitwise XOR of this value and
x
.Returns the bitwise XOR of this value and
x
.(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Example: -
def
^(x: Int): Int
Returns the bitwise XOR of this value and
x
.Returns the bitwise XOR of this value and
x
.(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Example: -
def
^(x: Char): Int
Returns the bitwise XOR of this value and
x
.Returns the bitwise XOR of this value and
x
.(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Example: -
def
^(x: Short): Int
Returns the bitwise XOR of this value and
x
.Returns the bitwise XOR of this value and
x
.(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Example: -
def
^(x: Byte): Int
Returns the bitwise XOR of this value and
x
.Returns the bitwise XOR of this value and
x
.(0xf0 ^ 0xaa) == 0x5a // in binary: 11110000 // ^ 10101010 // -------- // 01011010
Example: - def asDigit: Int
- def asDigitPosZInt: PosZInt
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
getClass(): Class[_ <: AnyVal]
- Definition Classes
- AnyVal → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def max(that: NumericChar): NumericChar
- def min(that: NumericChar): NumericChar
-
def
toByte: Byte
Converts this
NumericChar
to aByte
. -
def
toChar: Char
Converts this
NumericChar
to aChar
. -
def
toDouble: Double
Converts this
NumericChar
to aDouble
. -
def
toFloat: Float
Converts this
NumericChar
to aFloat
. -
def
toInt: Int
Converts this
NumericChar
to anInt
. -
def
toLong: Long
Converts this
NumericChar
to aLong
. -
def
toShort: Short
Converts this
NumericChar
to aShort
. -
def
toString(): String
A string representation of this
NumericChar
.A string representation of this
NumericChar
.- Definition Classes
- NumericChar → Any
-
def
unary_+: NumericChar
Returns this value, unmodified.
-
def
unary_-: NegZInt
Returns the negation of this value.
-
def
unary_~: Int
Returns the bitwise negation of this value.
Returns the bitwise negation of this value.
~5 == -6 // in binary: ~00000101 == // 11111010
Example: - val value: Char
-
def
|(x: Long): Long
Returns the bitwise OR of this value and
x
.Returns the bitwise OR of this value and
x
.(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Example: -
def
|(x: Int): Int
Returns the bitwise OR of this value and
x
.Returns the bitwise OR of this value and
x
.(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Example: -
def
|(x: Char): Int
Returns the bitwise OR of this value and
x
.Returns the bitwise OR of this value and
x
.(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Example: -
def
|(x: Short): Int
Returns the bitwise OR of this value and
x
.Returns the bitwise OR of this value and
x
.(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Example: -
def
|(x: Byte): Int
Returns the bitwise OR of this value and
x
.Returns the bitwise OR of this value and
x
.(0xf0 | 0xaa) == 0xfa // in binary: 11110000 // | 10101010 // -------- // 11111010
Example: