Context
There are no global variables in the Gentee language. One of the ways to exchange data is a special associative array of strings (context). Any function can safely add key-value pairs there or get a value by key. In addition, the context has the ability to substitute other existing values from the context. For example, if the pairs "a": "String A" and "b": "String B" has been defined, then "#a# and #b#" will return "String A and String B". The functions and operators for working with the context are described below.
Operator | Result | Description |
# ident | str | The same as CtxGet(key), where ident is the context key. |
## str | str | The same as Ctx(str). Specify any expression that returns a string. |
ident #= str | str | The same as CtxSet(str key, str s), where ident is the context key. |
ident #= bool | str | The same as CtxSet(str key, bool b), where ident is the context key. |
ident #= float | str | The same as CtxSet(str key, float f), where ident is the context key. |
ident #= int | str | The same as CtxSet(str key, int i), where ident is the context key. |
run str {
str s = ` #AºB#`
AºB #= `ººº`
b #= 71
CD #= `#AºB# #b# == `
return #CD + #b + ##s
}
// ººº 71 == 71 ººº
The Ctx function replaces substrings #keyname# in input string with the value of the corresponding key, if it exists.
run str {
CtxSetBool(`qq`, true)
CtxSetFloat(`ff`, 3.1415)
CtxSet(`out`, "it is #qq# that PI equals #ff#")
return Ctx("#out#. #notexist#")
}
// it is true that PI equals 3.1415. #notexist#
The CtxGet function gets the value of the key key, replaces all occurrences of other keys in it, and returns the resulting string. If the specified key is missing, an empty string is returned.
func init {
CtxSet(`a1`, `end`)
CtxSet(`a2`, `=#a1#=`)
CtxSet(`a3`, `+#a2#+#a1#`)
}
run str {
init()
return CtxGet(`a3`)
}
// +=end=+end
The CtxIs function returns true if there is a value with the specified key in the context. Otherwise, it returns false.
The CtxSet function adds a key and a value to the context. If the key already exists, it will be assigned a new value. The function returns the value of the key.
The CtxSet function adds a key and a logical value b to the context. A boolean value will be converted to the string true or false. The function returns the value of the key.
The CtxSet function adds a key and a floating-point number f to the context. The number will be converted to a string. The function returns the value of the key.
The CtxSet function adds a key and an integer i to the context. The number will be converted to a string. The function returns the value of the key.
The CtxValue function returns the value of the key key as is. Unlike the CtxGet function, it does not replace occurrences of other keys. If the specified key is missing, an empty string is returned.
run str {
CtxSet(`test`, `?value`)
CtxSet(`param`, `#test# ==`)
return CtxValue(`param`) + CtxValue(`nop`) + CtxGet(`param`)
}
// #test# ==?value ==
Last modified 3yr ago