Documentação oficial

Funções globais

Referência técnica de Funções globais — Joss language and Joss Red ecosystem.

Funções globais

Índice · Antes: funções · Classes nativas

Essas funções são integradas ao runtime, 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 ... 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 existe; isso não restaura o tipo de fonte excluído double. Os retornos declarados para ferramentais podem ser consultados no catálogo gerado; O resultado do tempo de execução é descrito abaixo.

Conversão e tipo de consultas

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(nil)
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 do que você precisa ver tipos e sintaxe.

Matrizes e mapas

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 fornece nulo. explode(",", "a,b")
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_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})

Texto e formatação

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")
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 personagens percebidos como emojis compostos, consulte unidades de texto.

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; por padrão Y-m-d 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 suportados e expressões relativas são implementados em date_utils.go. Nem toda gramática é incorporada de datas PHP. O fuso horário depende do processo; evite saídas de data local 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")
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 têm caixa de areia de arquivo. O exemplo completo está em relatório de compras.

Contexto da Web 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.
close(channel) Fechar; fechar duas vezes ou enviar após falhar.

Consulte HTTP e classes nativas, views e concurrency 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

Retornos postados incompletos observados: boolval anuncia int mas retornar bool; json anuncia string mas retorna WebResponse; microtempo anuncia float embora sem true retorne string; strpos e base64_decode podem retornar falso; array_merge também retorna mapa. Não atribua esses erros ao usuário ou forçar anotações incompatíveis para satisfazer o catálogo. O relatório de auditoria registra esta dívida.

Fontes: catálogo, matrizes e conversões, textos, E/S, hora, async.