std
Contains common functions
Constants
ARGS
: string desktop = command-line arguments
OwnLang
: map = {PLATFORM=android/desktop, VERSION=2.0.1_000000, VERSION_MAJOR=2, VERSION_MINOR=0, VERSION_PATCH=1}
Functions
arrayCombine(keys, values)
— creates map by combining two arrays
arrayKeyExists(key, map)
— checks existing key in map. 1 - exists, 0 - no
arrayKeys(map)
— returns array of map keys
arraySplice(array, start, deleteCount = length(array) - start, additions = [])
— returns new array with removed deleteCount
elements starting from start
and/or added new elements from start
index
arrayValues(map)
— returns array of map values
charAt(input, index)
— returns char code in position index
of string input
clearConsole()
android — clears console
default(a, b)
1.4.0 — returns value a
if it it non empty, returns b
otherwise
use std
user = {"name": "", "lastname": "Doe"}
name = default(user.name, "Unknown")
lastname = default(user.lastname, "Unknown")
println name + " " + lastname // Unknown Doe
echo(arg...)
— prints values to console, separate them by space and puts newline at the end. Takes variable number of arguments
use std
echo(1, "abc") // prints "1 abc" to console
echo(1, 2, 3, 4, 5, "a", "b") // prints "1 2 3 4 5 a b"
exit(status)
2.0.0 — terminates an application with provided status code. Non-zero values indicates abnormal termination
use std
println "Bye!"
exit(0)
getBytes(input, charset = "UTF-8")
1.5.0 — returns byte array of the string in the given charset
getenv(key, defaultValue = "")
2.0.0 — returns the value of the specified environment variable if it's exists, returns defaultValue
otherwise
use std
println getenv("JAVA_HOME")
getprop(key, defaultValue = "")
2.0.0 — returns the value of the system property if it's exists, returns defaultValue
otherwise
indexOf(input, what, index = 0)
— finds first occurrence of what
in string input
, starting at position index
join(array, delimiter = "", prefix = "", suffix = "")
— join array to string with delimiter
, prefix
and suffix
lastIndexOf(input, what, index = 0)
— finds last occurrence of what
in string input
, starting at position index
length(x)
— returns length of string, array/map size or number of function arguments
nanotime()
2.0.0 — returns VM time source in nanoseconds for elapsed time purposes
newarray(size...)
— creates array with size
. newarray(x)
- creates 1D array, newarray(x,y)
- creates 2D array
use std
println newarray(4) // [0, 0, 0, 0]
println newarray(2, 3) // [[0, 0, 0], [0, 0, 0]]
parseInt(str, radix)
— parses the input string into an integer with radix
base
parseLong(str, radix)
— parses the input string into a long integer with radix
base
parseDouble(str)
2.0.0 — parses the input string into a double
rand(from = 0, to = ..)
— returns pseudo-random number.rand()
- returns float number from 0 to 1rand(max)
- returns random number from 0 to maxrand(from, to)
- return random number from from
to to
range(from = 0, to, step = 1)
— creates lazy array by number range.range(to)
- creates range from 0 to to
(exclusive) with step 1range(from, to)
- creates range from from
to to
(exclusive) with step 1range(from, to, step)
- creates range from from
to to
(exclusive) with step step
use std
println range(3) // [0, 1, 2]
r = range(-5, 0) // [-5, -4, -3, -2, -1]
println r[0] // -5
println r[2] // -3
for x : range(20, 9, -5) {
println x
} // 20 15 10
readln(x)
desktop — reads a line from console
replace(str, target, replacement)
— replaces all occurrences of string target
with string replacement
replaceAll(str, regex, replacement)
— replaces all occurrences of regular expression regex
with string replacement
replaceFirst(str, regex, replacement)
— replaces first occurrence of regular expression regex
with string replacement
sleep(time)
— causes current thread to sleep for time
milliseconds
sort(array, comparator = ..)
— sorts array by natural order or by comparator
function
split(str, regex, limit = 0)
— splits string str
with regular expression regex
into array. limit
parameter affects the length of resulting array
use std
println split("a5b5c5d5e", "5") // ["a", "b", "c", "d", "e"]
println split("a5b5c5d5e", "5", 3) // ["a", "b", "c5d5e"]
sprintf(format, args...)
— formats string by arguments
stringFromBytes(input, charset = "UTF-8")
1.5.0 — returns a string from byte array in the given charset
stripMargin(input, marginPrefix = "|")
1.5.0 — trims leading whitespaces followed by marginPrefix
on each line and removes the first and the last lines if they are blank
use std
println "
|123
|456
".stripMargin() // "123\n456"
substring(str, startIndex, endIndex = ..)
— returns string from startIndex
to endIndex
or to end of string if endIndex
is not set
use std
println substring("abcde", 1) // bcde
println substring("abcde", 2, 4) // cd
sync(callback)
— calls an asynchronous function synchronously
use std, http
url = "https://whatthecommit.com/index.txt"
result = sync(def(ret) {
http(url, def(t) = ret(t))
})
println result
thread(func, args...)
— creates new thread with parameters if passed
use std
thread(def() {
println "New Thread"
})
thread(::newthread, 10)
thread("newthread", 20)
def newthread(x) {
println "New Thread. x = " + x
}
time()
— returns current time in milliseconds from 01.01.1970
toChar(code)
— converts char code to string
use std
println toChar(48) // "0"
toHexString(number)
— converts number into hex string
toLowerCase(str)
— converts all symbols to lower case
toUpperCase(str)
— converts all symbols to upper case
trim(str)
— removes any leading and trailing whitespaces in string
try(unsafeFunction, catchFunction = def(type, message) = -1)
— suppress any error in unsafeFunction
and returns the result of the catchFunction
if any error occurs
use std
println try(def() = "success") // success
println try(def() = try + 2) // -1
println try(def() = try(), def(type, message) = sprintf("Error handled:\ntype: %s\nmessage: %s", type, message))
println try(def() = try(), 42) // 42