Pular para o conteúdo

18 · Módulos

Dependências estrangeiras e locks

Declare dependências uma vez no escopo do arquivo. Providers precisam ser importados explicitamente; aliases escolhem o mesmo ambiente do provider original. Imports nativos ainda selecionam os símbolos usados em cada fragmento.

Nesta página

Declare dependências uma vez no escopo do arquivo. Providers precisam ser importados explicitamente; aliases escolhem o mesmo ambiente do provider original. Imports nativos ainda selecionam os símbolos usados em cada fragmento.

Execute localmente com o plugin e runtime correspondentes. Estes exemplos não rodam no playground do navegador.

Dependências estrangeiras e locks.

47-unified-dependencies.zolo
Playground
// Prepare once: zolo install examples/features/14-modules/47-unified-dependencies.zolo
// Requires Rust, C++/vcpkg and the JVM/Kotlin provider toolchains for preparation.
// parity-timeout-ms:300000
use plugin rust::{rust as rs}
use plugin native::{cpp}
use plugin jvm::{kotlin as kt}

deps {
    rs::serde_json = "1.0.145"
    cpp::fmt = { version = "11.0.2", default_features = true }
    kt::"com.google.guava:guava" = "33.4.0-jre"
}

extern rs fn answer() -> int {
    let value: serde_json::Value = serde_json::from_str(r#"{"answer":42}"#).unwrap();
    value["answer"].as_i64().unwrap()
}

extern cpp fn formatted(value: int) -> str {
    #include <fmt/format.h>
    return fmt::format("exact {}", value);
}

extern kt fn join(values: [str]) -> str {
    import com.google.common.base.Joiner
    return Joiner.on(", ").join(values.asIterable())
}

print(answer())
print(formatted(9007199254740993))
print(join(["Kotlin", "Maven", "Zolo"]))

// expected:
// 42
// exact 9007199254740993
// Kotlin, Maven, Zolo

Requer a CLI/host do Zolo — abra no playground ou rode localmente.

Política de instalação

auto prepara dependências ausentes antes de executar código do usuário. manual exige um ambiente preparado e informa o comando de instalação quando faltar. offline usa apenas artefatos locais compatíveis. Abrir uma fonte no editor nunca instala pacotes nem executa seu código.

Locks e execução offline

--frozen exige um lock compatível e proíbe alterações; sozinho, não impede baixar artefatos já fixados. Combine --offline e --frozen para impedir rede e mudanças no lock. As versões abaixo são pins exatos ilustrativos, não recomendações das versões mais recentes.

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br