আমদানি / যেমন কীওয়ার্ড
import কারেন্ট ফাইলে একটি মডিউল আনে। as এটিকে একটি লোকাল নামে বাইন্ড করে। একসাথে এটি দেখতে import "name" as alias;। বাংলা রূপ আমদানি ও যেমন।
সিনট্যাক্স
import "<name>" as <alias>;
import-এর পরের স্ট্রিং সিলেক্ট করে কী লোড হবে। as-এর পরের identifier হলো মেম্বার অ্যাক্সেসের জন্য লোকাল নাম।
স্ট্যান্ডার্ড লাইব্রেরি
import "io" as io;
import "path" as path;
import "web" as web;
import "async" as async;
var text = io.read_file(path.join(["docs", "intro.md"]));
print(text);
স্ট্যান্ডার্ড লাইব্রেরি মডিউল (io, path, web, request, async, template, sqlite, pg, mongo, crypto, json, regex, time, timers, math, random, log, dotenv, cli, test, …) রানটাইমের সাথে শিপ — কোনো ইনস্টলেশন দরকার নেই।
BPM দিয়ে ইনস্টল করা প্যাকেজ
import "some-package" as pkg;
print(pkg.hello());
bpm install some-package প্যাকেজকে ./deps/some-package/-এ ড্রপ করে, এবং import resolver সেখানে খুঁজে পায়। প্যাকেজের এন্ট্রি পয়েন্ট তার bnl.json-এ ডিক্লেয়ার্ড ("main": "src/index.bnl")।
নেটিভ প্লাগইন
নেটিভ মডিউল — bnl-এর C প্লাগইন কন্ট্রাক্ট implement করা .dll / .so / .dylib শেয়ার্ড লাইব্রেরি — সরাসরি পাথ দিয়ে বা bpm দিয়ে install করে নাম দিয়ে import করা যায়। প্লাগইন একটি একক drop-in C হেডার (bnl/plugin.h) ব্যবহার করে এবং C, C++, Rust, Go, Zig, বা C FFI সমর্থিত যেকোনো ভাষায় লেখা যায়। সম্পূর্ণ গাইডের জন্য প্লাগইন ডেভেলপমেন্ট দেখুন।
// সরাসরি পাথ (স্ক্রিপ্ট .dll-এর পাশে):
import "./build/bin/mathx.dll" as m;
print(m.cube(3)); // নেটিভ cube() কল
print(m.hypot(5, 12));
// bpm দিয়ে install করা (deps/my-plugin/bnl.json দিয়ে resolve হয়):
import "my-plugin" as p;
print(p.greet("world"));
একটি নেটিভ dep-এর bnl.json তার native ফিল্ডে শেয়ার্ড লাইব্রেরির ফাইলনেম declare করে; import resolver pure-bnl dep-এর মতোই এটি খুঁজে পায়।
Renaming
as ব্যবহার করে একটি ছোট বা প্রাসঙ্গিক নাম বেছে নিন:
import "request" as req;
import "io" as fs; // এই ফাইলে যা পড়তে ভালো লাগে সেটাই দিন
req.get("https://example.com", function (err, resp) { /* ... */ });
fs.read_file("notes.txt");
নোট
import-এর পরের স্ট্রিং একটি literal — এটি রানটাইম expression হতে পারে না। Import statically resolve হয়।- প্রতিটি
importঠিক একটি alias ডিক্লেয়ার করে। কোনো multi-name বা wildcard import নেই। - Import top-level। একটি ফাংশন বা
ifব্লকের ভেতরেimportরাখবেন না।
বাংলা রূপ
আমদানি "io" যেমন io;
আমদানি "path" যেমন path;
চলক text = io.read_file(path.join(["docs", "intro.md"]));
print(text);