Funções globais
Índice · Antes: Funções FUNCIONES.md · Classes nativas
Essas funções são integradas ao tempo de execução ( pkg/core/builtins.go ), sem importação ou instalação.
A assinatura nesta página descreve o uso suportado pelo despachante; nem todos
os parâmetros são publicados no analisador. [x] indica um argumento
opcional e ... indica vários argumentos. Não são personagens que você deva copiar.
As famílias compartilham exemplos no final. Aliases de funções como
doubleval ainda existem; isso não restaura o tipo de fonte excluído
double . Os retornos declarados para ferramentais podem ser consultados no catálogo gerado
CATALOGO_NATIVO.md ; O resultado do tempo de execução é descrito abaixo.
Conversão e consultas do tipo
| Assinatura | Resultado e limites | Exemplo |
|---|---|---|
intval(valor) |
Todo; truncar float/decimal, bool definido como 0/1; inválido ou ausente dá 0. | intval("12") → 12 |
floatval(valor) , doubleval(valor) |
Flutuação aproximada; inválido dá 0. | floatval("1.5") |
decimal([valor]) |
Decimal de número/texto/bool; inválido ou nulo dá zero. Os sufixos textuais m/M/d/D são cortados. | decimal("1.25") |
strval(valor) |
Formato Text by Go, null fornece texto vazio. Não é JSON. | strval(12) |
boolval(valor) |
Bool de acordo com a verdade do tempo de execução. Zero float e mapa vazio têm diferenças de outras linguagens. | boolval("") → falso |
is_numeric(valor) |
Bool: número ou texto interpretável como float/decimal. Não valida um domínio como “idade”. | is_numeric("12") |
is_int(valor) , is_integer(valor) |
Bool; inteiro, sem converter strings. | is_int("12") → falso |
is_float(valor) , is_double(valor) |
Bool; flutuar, não convertido. | is_float(1.5) |
is_decimal(valor) |
Bool; decimal concreto. | is_decimal(1m) |
is_string(valor) |
Bool; texto específico. | is_string("a") |
is_array(valor) |
Bool; matriz/fatia, não mapa. | is_array([1]) |
is_null(valor) |
Bool; ausência de valor; nenhum argumento também é verdadeiro. | is_null(null) |
isset(expresiones...) |
Forma especial do analisador: consulta de existência sem erro por falta de variável. Uma variável vinculada a nulo conta como existente; Não serve como uma verificação geral das chaves do mapa. | isset($nombre) |
empty(expresion) |
Forma especial: verdadeiro se não existir ou se o valor for falso de acordo com as regras de tempo de execução. | empty($ausente) |
As conversões explícitas são permissivas; Eles não substituem a validação.
Para condições exatas, compare com 0 , null ou "" dependendo de qual
você precisa. Consulte os tipos SISTEMA_TIPOS.md e a sintaxe SINTAXIS.md .
Matrizes funcionais, mapas e coleções
| Assinatura | Resultado, mutação e erros | Exemplo |
|---|---|---|
len(valor) , count(valor) |
comprimento da matriz/mapa; bytes de string; outros valores dão 0. | count([2,3]) → 2 |
keys(map) , array_keys(map) |
Matriz de chaves sem ordem garantida; inválido dá []. | keys({"a":1}) |
values(map) , array_values(map) |
Matriz de valores sem pedido garantido; inválido dá []. | values({"a":1}) |
explode(separador, texto) |
Matriz de segmentos; requer duas strings, inválido retorna nulo. | explode(",", "a,b") |
append(array, elemento) |
Retornar array expandido; reatribui o resultado. Inválido dá nulo. | $a = append($a, 2) |
merge(array1, array2) |
Novo contêiner com ambas as sequências; inválido dá nulo. | merge([1],[2]) |
array_merge(primero, otros...) |
Matriz concatenada ou mapa combinado de acordo com o primeiro argumento; as últimas chaves vencem. Ignore o seguimento de outros tipos; inválido dá []. | array_merge({"a":1},{"a":2}) |
array_push(array, elementos...) |
Matriz Expandida; não retorna comprimento. Reatribuir. Inválido dá nulo. | $a = array_push($a,2,3) |
end(array) , array_pop(array) |
Último elemento ou nulo. Eles não reduzem a matriz. | array_pop([1,2]) → 2 |
array_shift(array) |
Primeiro elemento ou nulo. Não reduz a matriz. | array_shift([1,2]) → 1 |
array_slice(array,inicio,[longitud]) |
Vista de superfície; negativos em relação ao final; sai dá []. Compartilhe armazenamento. | array_slice([1,2,3],1) |
array_unique(array) |
Nova matriz, igualdade por representação textual; você pode mesclar valores de diferentes tipos. | array_unique([1,1,2]) |
array_fill(inicio_o_longitud, cantidad_o_valor, [valor]) |
Nova matriz preenchida com o valor indicado. Aceite (longitud, valor) ou (inicio, cantidad, valor) . Inválido fornece []. |
array_fill(3, "x") → ["x","x","x"] |
array_reverse(array) |
nova matriz invertida; inválido dá []. | array_reverse([1,2]) |
array_column(array,clave) |
Valores dessa chave nos elementos do mapa; omite outros elementos/chaves ausentes. | array_column([{"id":1}],"id") |
in_array(valor,array) |
Bool; em matrizes Joss, ele suporta igualdade profunda ou textual. | in_array(1,["1"]) → verdadeiro |
array_key_exists(clave,map) |
existência bool; não deve ser confundido com valor não nulo. | array_key_exists("a",{"a":null}) |
map(array, closure) |
Retorna um novo array aplicando closure a cada elemento. |
map([1,2], func(int $x): int { return $x * 2 }) |
filter(array, closure) |
Retorna um novo array com os elementos onde closure retorna verdadeiro. |
filter([1,2,3], func(int $x): bool { return $x > 1 }) |
sum(array) |
Soma numérica dos elementos; preserva decimal , verifica o estouro de número inteiro e rejeita a mistura de float com decimal ( JOSS-ARITH-003 ). |
sum([10, 20, 30]) → 60 |
Texto e formato
| Assinatura | Resultado e limites | Exemplo |
|---|---|---|
print(valores...) , echo(valores...) |
Eles imprimem cada argumento com uma quebra de linha; retornar nulo. | print("Hola") |
printf(formato,valores...) |
Formato Go, sem salto implícito; retornar nulo. | printf("%s: %d\\n","Edad",20) |
strlen(texto) |
Número de pontos Unicode; nulo dá 0. | strlen("é") → 1 |
str_contains(texto,parte) , contains(texto,parte) |
Bool; argumentos são convertidos em texto. | contains("casa","as") |
str_starts_with(texto,prefijo) , starts_with(...) |
Prefixo bool. | starts_with("abc","a") |
str_ends_with(texto,sufijo) , ends_with(...) |
Postfix bool. | ends_with("abc","c") |
str_replace(buscar,reemplazo,texto) |
Substitui todas as correspondências. A ordem difere de Str::replace. | str_replace("a","o","casa") |
strtolower(texto) , to_lower(texto) |
Unicode minúscula. | to_lower("HOLA") |
strtoupper(texto) , to_upper(texto) |
Unicode maiúscula. | to_upper("hola") |
ucfirst(texto) , lcfirst(texto) |
Altere o primeiro ponto Unicode para maiúsculas/minúsculas. | ucfirst("hola") |
ucwords(texto) |
Capitalização de acordo com Go strings.Title; não análise linguística. | ucwords("hola mundo") |
trim(texto,[conjunto]) |
Remove espaços ou caracteres Unicode do conjunto nas extremidades. | trim(" hola ") |
ltrim(texto,[conjunto]) , rtrim(texto,[conjunto]) |
Apare em uma extremidade; espaços ASCII padrão. | ltrim(" hola") |
substr(texto,inicio,[longitud]) |
Pontos Unicode; negativos em relação ao final; sai dá “”. | substr("abc",-2) → bc |
strpos(texto,parte) |
Posição em pontos Unicode ou falso se estiver faltando. Zero é uma correspondência válida. | strpos("abc","a") → 0 |
implode(separador,array) , join(separador,array) |
Converta elementos em texto e junte; inválido dá “”. | join("-",[1,2]) |
str_pad(texto,longitud,[relleno]) |
Adiciona preenchimento à direita em bytes, espaço padrão. O enchimento vazio pode causar pânico; não use. | str_pad("7",3,"0") → 700 |
str_repeat(texto,cantidad) |
Texto repetido; Negativo é igual a zero. | str_repeat("a",3) |
html_escape(valor) |
Escapes &, <, > e aspas para HTML; nulo dá “”. | html_escape("<b>") |
md5(texto) , sha1(texto) , sha256(texto) |
resumo hexadecimal de bytes; sem criptografia ou hash de senha. | sha256("dato") |
base64_encode(texto) |
Texto Base64, sem segredo criptográfico. | base64_encode("a") → YQ== |
base64_decode(texto) |
String de bytes ou falso se for inválido. | base64_decode("YQ==") |
Para senhas, use o contrato Auth. Para caracteres percebidos como emojis compostos , consulte unidades de texto COLECCIONES.md .
Números e hora
| Assinatura | Resultado e limites | Exemplo |
|---|---|---|
round(numero,[precision]) |
Flutuador arredondado; Precisão padrão 0. Não processa decimal.Decimal. | round(1.25,1) |
floor(numero) , ceil(numero) |
Número inteiro para baixo/para cima; Eles aceitam float/int, não decimal. | floor(1.9) → 1 |
abs(numero) |
magnitude int/float. O int64 mínimo pode estourar sem diagnóstico aqui. | abs(-2) |
min(valores...) , max(valores...) |
Eles também aceitam um array não vazio; sem argumentos nulos. Uma única matriz vazia é retornada como tal. | max([1,3,2]) |
rand([min,max]) |
inteiro inclusivo; sem dois limites use 0..MaxInt32. max<=min retorna min. Não criptográfico. | rand(1,6) |
time() |
Segundos Unix como número inteiro. | time() |
microtime([comoFloat]) |
Com true, flutue em segundos; por padrão, texto “fração de segundos”. | microtime(true) |
date([formato,timestamp]) |
Texto; padrão Ymd H:i:s e hora atual. O carimbo de data/hora oferece suporte a número, texto ou hora do host.Valor de hora. | date("Y-m-d",0) |
now([formato]) |
Texto da data atual; mesmo formato padrão. | now("H:i:s") |
strtotime(texto,[base]) |
Inteiro Unix ou nulo se o texto não for reconhecido. Analisador limitado de datas e deslocamentos. | strtotime("+1 day",0) |
sleep(segundos) , usleep(microsegundos) |
Eles bloqueiam a tarefa atual; retornar nulo. sleep suporta frações flutuantes. | sleep(0.01) |
Os tokens de data e expressões relativas suportados são implementados em date_utils.go . Nem toda a gramática de data do PHP é incorporada. O fuso horário depende do processo; evita saídas de data locais em testes que devem ser idênticos em qualquer máquina.
Arquivos, serialização e processos
| Assinatura | Resultado e erros | Exemplo |
|---|---|---|
file_exists(ruta) |
Bool; inclui diretórios; false em erro de estatística. | file_exists("datos.json") |
is_dir(ruta) , is_file(ruta) |
Bool; is_file significa existente e não diretório. | is_dir("storage") |
file_get_contents(ruta) |
String de bytes ou nulo em caso de falha. Somente arquivos locais. | file_get_contents("datos.json") |
file_put_contents(ruta,texto) |
Substituir/criar arquivo; verdadeiro ou falso. Não crie pais. | file_put_contents("nota.txt","Hola") |
unlink(ruta) , file_delete(ruta) |
Exclua arquivo ou diretório vazio; sucesso bool. | unlink("nota.txt") |
mkdir(ruta) |
Crie pai incluindo diretórios; bool. | mkdir("storage/informes") |
json_encode(valor) |
JSON com recuo conforme JsonEncode; “” em caso de erro. | json_encode({"ok":true}) |
json_decode(texto) |
Valor nativo ou nulo em caso de erro (também JSON nulo). Os números são decodificados para flutuar. | json_decode("[1,2]") |
json_verify(texto) |
Sintaxe JSON bool, não estrutura de negócios bool. | json_verify("{}") |
toon_encode(valor) |
Formato textual simplificado de registros; fuga não binária e não completa. | toon_encode([{"a":"b"}]) |
toon_decode(texto) |
Matriz de registros do subconjunto ou nulo. Valores textuais. | Use saída de codificador compatível. |
toon_verify(texto) |
Verificação limitada de cabeçalho/estrutura; não integridade criptográfica. | Não use para validar dados hostis. |
hive_read_box(ruta) |
Matriz de entradas ou nulo; erro de impressão. Leitor de formato Hive parcial. | Requer arquivo Hive compatível. |
run(ruta,args...) |
Execute .py com python ou .php com php; saída combinada. Requer ALLOW_SYSTEM_RUN=true e executável instalado. Falha na impressão e retorno de saída/“”; Ele nem sempre joga. | run("script.py","dato") |
Os caminhos são relativos ao diretório de trabalho. As operações não possuem caixa de areia de arquivo. O exemplo completo está no relatório de compras PROYECTO_CONSOLA.md .
Contexto web, testes e simultaneidade
| Assinatura | Contrato e disponibilidade |
|---|---|
env(clave,[default]) , config(clave,[default]) |
Consulta r.Env; retorna string ou padrão arbitrário se estiver ausente/vazio. Ele não lê .env novamente. |
view(nombre,[datos]) |
Delegar Visualização::render; contexto do modelo de projeto. |
json(datos,[status]) |
Delega Response::json e retorna WebResponse; não é serialização para string. |
response(cuerpo,[status,mime,headers]) |
Resposta dos delegados::raw. |
redirect(url,[status]) , back() |
redirecionar WebResponse; back usa contexto de solicitação. |
request([clave,default]) |
Sem chave você obtém Request::all; com a chave Request::input. |
session([clave]) |
Nenhuma chave de objeto de sessão ou nula; com a chave Session::get. Não incorpora uma sessão de console. |
__(clave) |
Tradução usando localidade atual e gerenciador i18n. |
csrf_field() |
_token campo HTML usando sessão; sem ele token vazio. |
async { instrucciones } |
Sintaxe que cria Future e executa um encerramento em fork/goroutine. |
await(future) |
Espera e retorna resultado; propaga o fracasso. |
make_chan([capacidad]) |
Canal; capacidade 0 sincroniza transmissor e receptor. |
send(channel,valor) |
Enviar; pode bloquear, canal fechado causa falha. Também canal << valor. |
recv(channel) |
Receber; bloqueia até dados/fechamento; o fechamento esgotado produz nulo. |
close(channel) |
Fechar; fechar duas vezes ou enviar após falhar. |
Ok(valor) , Err(error) |
Construtores do tipo Result<T, E> para retorno explícito de sucesso ou falha. |
test(nombre, closure) , it(nombre, closure) |
Registra e executa um caso de teste nos arquivos *_test.joss ( joss test ). |
assert(cond,[msg]) , assertTrue(...) , assertFalse(...) , assertEqual(a,b) , assertNotEqual(a,b) , assertNull(v) , assertNotNull(v) , assertThrows(closure) |
Asserções nativas integradas para testes automatizados com joss test . |
Consulte classes HTTP e nativas , visualizações VISTAS.md e CONCURRENCIA.md simultaneidade para exemplos com o contexto necessário.
##
Exemplo executável de utilitários
print(ucfirst(trim(" ana ")))
print(strlen("sol"))
print(join("-", ["a", "b"]))
print(array_key_exists("id", {"id": null}))
print(base64_decode(base64_encode("Hola")))
print(floor(2.8))
Diferenças entre metadados e implementação
Foram observados retornos postados incompletos: boolval anuncia int mas retorna bool; json anuncia string mas retorna WebResponse; microtime anuncia float embora sem true ele retorne string; strpos e base64_decode podem retornar falso; array_merge também retorna mapa. Não atribua esses erros ao usuário nem force anotações incompatíveis para satisfazer o catálogo. O relatório de auditoria DOCUMENTATION_AUDIT.md registra esta dívida.
Fontes: catálogo ../pkg/core/builtins.go , matrizes e conversões , textos , E/S , tempo , assíncrono .