Return a negative integer, zero, or a positive integer if this object is less than, equal to, or greater than the specified object:
this < that => <0
this == that => 0
this > that => >0
This method may also be accessed via the <
<=
<=>
>=
and >
shortcut operators. If not overridden the default
implementation compares the toStr
representations. Also see docLang.
Examples:
3.compare(8) => -1
8.compare(3) => 1
8.compare(8) => 0
3 <=> 8 => -1 // shortcut for 3.compare(8)
Compare this object to the specified for equality. This
method may be accessed via the == and != shortcut operators.
If not overridden the default implementation compares for
reference equality using the === operator. If this method
is overridden, then hash() must also be overridden such that
any two objects which return true for equals() must return
the same value for hash(). This method must accept null
and
return false.
Return a unique hashcode for this object. If a class overrides hash() then it must ensure if equals() returns true for any two objects then they have same hash code.
Get an immutable representation of this instance or throw NotImmutableErr if this object cannot be represented as an immutable:
Return a string representation of this object.
Trap a dynamic call for handling. Dynamic calls are invoked with the -> shortcut operator:
a->x a.trap("x", null)
a->x() a.trap("x", null)
a->x = b a.trap("x", [b])
a->x(b) a.trap("x", [b])
a->x(b, c) a.trap("x", [b, c])
The default implementation provided by Obj attempts to use reflection. If name maps to a method, it is invoked with the specified arguments. If name maps to a field and args.size is zero, get the field. If name maps to a field and args.size is one, set the field and return args[0]. Otherwise throw UnknownSlotErr.
This method called whenever an it-block is applied to an
object. The default implementation calls the function with this
,
and then returns this
.
Static
absReturn the absolute value of this integer. If this value is positive then return this, otherwise return the negation.
Static
andBitwise-and of this and b.
Static
clampClamp this integer between the min and max. If it's less than min then return min, if it's greater than max return max, otherwise return this integer itself.
Static
compareStatic
decrementDecrement by one. Shortcut is --a or a--.
Static
defDefault value is zero.
Static
divDivide this by b. Shortcut is a/b.
Static
divDivide this by b. Shortcut is a/b.
Static
divDivide this by b. Shortcut is a/b.
Static
echoWrite x.toStr
to standard output followed by newline. If x
is null then print "null". If no argument is provided then
print an empty line.
Optional
x: JsObjStatic
equalsStatic
equalsReturn if the two Unicode chars are equal without regard to ASCII case.
Static
fromConvert a Unicode digit character into a number for the specified radix. Return null if this char is not a valid digit.
Example:
'3'.fromDigit => 3
'f'.fromDigit(16) => 15
'%'.fromDigit => null
Optional
radix: numberStatic
fromParse a Str into a Int using the specified radix. Unless the radix is 10, then a leading minus sign is illegal. If invalid format and checked is false return null, otherwise throw ParseErr.
Optional
radix: numberOptional
checked: booleanStatic
hashReturn this.
Static
incrementIncrement by one. Shortcut is ++a or a++.
Static
isReturn if this Unicode char is an ASCII alpha char: isUpper||isLower
Static
isReturn if this Unicode char is an ASCII alpha-numeric char: isAlpha||isDigit
Static
isReturn if this Unicode char is a digit in the specified radix. A decimal radix of ten returns true for 0-9. A radix of 16 also returns true for a-f and A-F.
Example:
'3'.toDigit => true
3.toDigit => false
'B'.toDigit(16) => true
Optional
radix: numberStatic
isReturn if this integer is evenly divisible by two.
Static
isReturn if this Unicode char is an ASCII lowercase alphabetic char: a-z
Static
isReturn if this integer is not evenly divisible by two.
Static
isReturn if this Unicode char is whitespace: space \t \n \r \f
Static
isReturn if this Unicode char is an ASCII uppercase alphabetic char: A-Z
Static
localeGet the current locale's decimal separator. For example in the the US this is a dot.
Static
localeGet the current locale's separator for grouping thousands together. For example in the US this is a comma.
Static
localeReturn if this Unicode char is a lowercase letter in the current locale. See also localeIsUpper and isLower.
Static
localeReturn if this Unicode char is an uppercase letter in the current locale. See also localeIsLower and isUpper.
Static
localeIf this Unicode char is an uppercase char, then return it as lowercase according to the current locale. Note that Unicode contains some case conversion rules that don't work correctly on a single character, so Str.localeLower should be preferred. See also localeUpper and lower.
Static
localeGet the current locale's minus sign used to represent a negative number.
Static
localeGet the current locale's string representation for not-a-number.
Static
localeGet the current locale's string representation for negative infinity.
Static
localeGet the current locale's symbol for the percent sign.
Static
localeGet the current locale's string representation for positive infinity.
Static
localeIf this Unicode char is a lowercase char, then return it as uppercase according to the current locale. Note that Unicode contains some case conversion rules that don't work correctly on a single character, so Str.localeUpper should be preferred. See also localeLower and upper.
Static
lowerIf this Unicode char is an ASCII uppercase char, then return it as lowercase, otherwise return this.
Example:
'A'.lower => 'a'
'h'.lower => 'h'
Static
maxReturn the larger of this and the specified Int values.
Static
maxMaximum value which can be stored in a signed 64-bit Int: 9,223,372,036,854,775,807
Static
minReturn the smaller of this and the specified Int values.
Static
minusSubtract b from this. Shortcut is a-b.
Static
minusSubtract b from this. Shortcut is a-b.
Static
minusSubtract b from this. Shortcut is a-b.
Static
minMinimum value which can be stored in a signed 64-bit Int: -9,223,372,036,854,775,808
Static
modReturn remainder of this divided by b. Shortcut is a%b.
Static
modReturn remainder of this divided by b. Shortcut is a%b.
Static
modReturn remainder of this divided by b. Shortcut is a%b.
Static
multMultiply this with b. Shortcut is a*b.
Static
multMultiply this with b. Shortcut is a*b.
Static
multMultiply this with b. Shortcut is a*b.
Static
negateNegative of this. Shortcut is -a.
Static
notBitwise not/inverse of this.
Static
orBitwise-or of this and b.
Static
plusAdd this with b. Shortcut is a+b.
Static
plusAdd this with b. Shortcut is a+b.
Static
plusAdd this with b. Shortcut is a+b.
Static
powReturn this value raised to the specified power. Throw ArgErr if pow is less than zero.
Static
randomGenerate a random number. If range is null then all 2^64 integer values (both negative and positive) are produced with equal probability. If range is non-null, then the result is guaranteed to be inclusive of the range. Also see Float.random , Range.random , List.random , and util::Random.
Examples:
r := Int.random
r := Int.random(0..100)
Optional
r: RangeStatic
shiftaBitwise arithmetic right-shift of this by b. The left-most
bit is shifted into the highest bits performing like a
signed shift. This is equivalent to the Java >>
operator.
Static
shiftlBitwise left shift of this by b.
Static
shiftrBitwise right shift of this by b. Zero is shifted into the
highest bits performing like an unsigned shift. This is
equivalent to the Java >>>
operator.
Static
timesCall the specified function to this times passing the current counter. The counter begins at zero. Also see Range.each.
Example:
3.times |i| { echo(i) } => 0, 1, 2
Static
toMap as a Unicode code point to a single character Str.
Static
toGet this Int as a Fantom code literal. Base must be 10 or 16.
Optional
base: numberStatic
toConvert nano-seconds ticks since 1-Jan-2000 to a DateTime. Convenience for DateTime.makeTicks.
Optional
tz: TimeZoneStatic
toConvert this number to a Decimal.
Static
toConvert this number into a Unicode char 0
-'9'. If radix is
greater than 10, then use a lower case letter. Return null
if this number cannot be represented as a single digit
character for the specified radix.
Example:
3.toDigit => '3'
15.toDigit(16) => 'f'
99.toDigit => null
Optional
radix: numberStatic
toConvert nano-seconds ticks to a Duration. Convenience for Duration.make.
Static
toConvert this number to a Float.
Static
toReturn hexdecimal string representation. If width is non-null, then leading zeros are prepended to ensure the specified number of nibble characters.
Examples:
255.toHex => "ff"
255.toHex(4) => "00ff"
Optional
width: numberStatic
toConvert this number to an Int.
Static
toFormat this integer number for the current locale. If pattern is null, then the locale's default pattern is used. See Float.toLocale for pattern language. Fractional formatting is not supported for integers.
In addition Int.toLocale
supports the "B" pattern which will
format a number of bytes with the appropriate B, KB, MB, GB
suffix based on the magnitude (1024B == 1KB).
Examples:
3.toLocale("00") => 03
3.toLocale("000") => 003
123456789.toLocale("#,###") => 123,456,789
123.toLocale("B") => 123B
1234.toLocale("B") => 1.2KB
100_000.toLocale("B") => 98KB
(3*1024*1024).toLocale("B") => 3MB
Optional
pattern: stringOptional
locale: LocaleStatic
toReturn string representation in given radix. If width is non-null, then leading zeros are prepended to ensure the specified width.
Examples:
255.toRadix(8) => "377"
255.toRadix(8, 5) => "00377"
Optional
width: numberStatic
toReturn decimal string representation.
Static
upperIf this Unicode char is an ASCII lowercase char, then return it as uppercase, otherwise return this.
Example:
'a'.upper => 'A'
'4'.upper => '4'
Static
xorBitwise-exclusive-or of this and b.
Int is used to represent a signed 64-bit integer.