Assalomu Alaykum bug-lang haqida qisqacha malumot. Buglang interpreter dasturlash tili, golangda yozilgan. Bu tilni yaratishdan asosiy maqsad yo’q 😁 to’g’ri o’zim o’rganish uchun yaratdim lekin sizga foydasi yo’q ko’dini ko’rib chiqsangiz foydasi tegishi mumkun
Documentatsiyani yozishdan avval zerikishni boshladim biror nima qolib ketgan bo’lishi mumkun lekin barchasi examples papkasida yozilgan ko’rib chiqishingiz mumkun
O’rnatishni ikkita usuli mavjud biri source code ni clone qilib olib build qilish yoki releasedan kerakli binary fayilni yuklab olish. Hozir biz ikkinchi usuldan foydalanamiz
Binary fayilni yuklab olish
# Ubuntu
curl -O https://github.com/UzStack/bug-lang/releases/download/v1.1.7/buglang-ubuntu# Mac
curl -O https://github.com/UzStack/bug-lang/releases/download/v1.1.7/buglang-macos# Windows
curl -O https://github.com/UzStack/bug-lang/releases/download/v1.1.7/buglang-windows.exefoydalanish juda oddiy shunchaki binary joylashgan papkaga o’ting va ./buglang-<system> ./main.bug. Masalan ./buglang-ubuntu ./main.bug
Buglangda o’zgaruvchi yaratish uchun shunchaki key = value dan foydalaniladi
name = "Samandar"
age = 20
.....// yangi list yaratish
numbers = [20.4324, 324.423432, 10.21];
// yangi element qo'shish
numbers.append(100);
// List o'lchamini olish
numbers.size();
/// Element mavjud ekanligini tekshirish
numbers.contains(100);
// List ichidan elementni olish uchun index dan foydalanish mumkun to'rtburchak qavslar yordamida
println(numbers[0]);// dictionary yaratish
users = [
{ "name": "Samandar", "age": 20, "id": 1 },
{ "name": "Nomalum", "age": 100, "id": 2 }
];
// yangi element qo'shish
users[0]["new_item"] = "salom";
// Elementni olib tashlash
users[0].remove("age");
// Element qiymatini olish
println(users[0]["name"]);Faqatgina for loop mavjud boshqa loop yo’q
i = 0;
for (i < users.size()) {
user = users[i];
println("name: ", user["name"]);
i = i + 1;
}Funcsiya yaratish uchun func kalit so’zidan foydalaniladi
func getName(){
return "Samandar";
}Buglangda classlar ham mavjud class kalit so’zi yordamida yaratiladi
class ClassName() {
}Konstructor method class yaratilganda ishga tushadigan funcsiya init nomli funcsiya pythonda o’g’irladim 😁
class ClassName() {
func init() {
this.name = "A";
}
}Desctructor mavjud emas chunki garbage collection ni o’zi yo’q
// Define class A
class A() {
func init() {
this.name = "A";
}
func getName() {
return this.name;
}
}
// Define class B
class B() {
func init() {
this.name = "B";
}
func getName() {
return this.name;
}
}
// Define class C inheriting from B and A
class C(B, A) {
func init() {
super(A).init(); // super yordamida ota classdagi funcsiyani chaqirish mumkun
println(this.name); // Chiqarish: A
super(B).init();
println(this.name); // Chiqarish: B
this.name = "C";
}
func getName() {
return this.name;
}
}println(...): konsolga argumentlarni chiqaradi, bir nechta argumentlarni bo'sh joy bilan birlashtiradi.header(”Content-Type”, “application/json”): web requestlar uchun response uchun header yuboradi
- requests
- math
- json
- pgsql
import "requests";
response = requests.request("POST", "https://blog.jscorp.uz/api/project/?page=1");
print(response.json());println(math.round(10.2121, 2));import "json";
json.decode("{\"name\":\"Samandar\"}"); // result: {"name": "Samandar"} type: dict
json.encode({"name":"Samandar"}); //result: {\"name\":\"Samandar\"} type: stringimport "psql";
db = new psql.DB("db");
query = db.query("select * from users");
print(query.findAll());_GET: request get params_POST: request post data_REQUEST: request_GLOBALS: Barcha global o’zgaruvchilar
ko’dlarni bir nechta faytillarga bo’lib yozilganda import qilish uchun import kalit so’zidan foydalaniladi
// utils.bug
func getHello(name="Samandar"){
return "Salom "+name;
}// main.bug
import "utils.bug";
println(getHello());
println(getHello("Polonchi"));bug-fpm bu php-fpm alternativi yani buglangni web uchun ishlatishga yordam beradigan dastur
examples papkasida api example ko’rsatilgan
curl -O https://github.com/UzStack/bug-lang/releases/download/v1.1.7/fpm-ubuntuDasturni yuklab olganingizdan keyin ishga tushurib qo’ying avtomatik backgroundda ishga tushmaydi.
bug-fpm php-fpm kabi ishlaydi nginx config ham birxil bo’ladi fastcgi_pass ga bug-fpm sock beriladi default sock path /tmp/bug-fpm.sock
server {
listen 80;
server_name _;
root /project/path/;
index index.bug index.html index.php;
location / {
try_files $uri $uri/ /index.bug?$args;
}
location ~ \.bug$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/bug-fpm.sock;
}
}
Azamov Samandar
Telegram: @Azamov_Samandar
Web-Site: https://jscorp.uz
Telefon no’mer: +998 88 811-23-09
email: [email protected]