Hello, World!

Endi siz Rustni o'rnatdingiz, hozir sizning birinchi Rust dasturingizni yozishning ayni vaqti. Yangi dasturlash tilini o'rganishda Hello, World! matnini ekranga chop etuvchi kichik va sodda dastur tuzish an'anaga aylangan, shunday ekan biz ham sinab ko'ramiz!

Eslatma: Bu kitob terminal bilan ishlay olishning boshlang'ich ko'nikmalarini talab qiladi. Rust sizning kod muxarriringiz foydalanadigan asboblaringiz va kodingizni qayerda joylayishi bo'yicha talablar qo'ymaydi, shuning uchun agar siz terminal o'rniga integratsiyalashgan ishlab chiqish muhitidan (IDE) foydalanishni afzal ko'rsangiz, o'zingizning sevimli IDE-dan foydalaning. Ko'pgina IDElar endi ma'lum darajada Rust-ni qo'llab-quvvatlaydi; tafsilotlar uchun IDE hujjatlarini tekshiring. Rust jamoasi rust-analyzer orqali ajoyib IDE yordamini ta'minlashga e'tibor qaratdi. Batafsil ma’lumot uchun D ilovasini ko'zdan kechiring.

Loyiha jildini yaratish

Siz ishni Rust kodingizni joylaytirish uchun jild yaratishdan boshlaysiz. Rust uchun sizning kodingiz qayerda joylashining ahamiyati yo'q, lekin biz bu kitobdagi mashq va loyihalarni joylash uchun projects nomli jild yaratishingizni maslahat beramiz.

Terminalni oching va projects jildini yaratish va uning ichidan “Hello, world!” loyihasi jildini yaratish uchun quyidagi buyruqlarni kiriting.

Linux, macOS va Windows Powershell uchun:

$ mkdir ~/projects
$ cd ~/projects
$ mkdir hello_world
$ cd hello_world

Windows CMD uchun:

> mkdir "%USERPROFILE%\projects"
> cd /d "%USERPROFILE%\projects"
> mkdir hello_world
> cd hello_world

Rust dasturi yozish va ishga tushirish.

Endi, main.rs nomli yangi fayl yarating. Rust kodlar har doim .rs kengaytmasi bilan tugaydi. Agar fayl nomida bir nechta so'zlardan foydalansangiz, ularni ajratish uchun pastki chiziqdan foydalanish shart. Masalan, helloworld.rs o'rniga hello_world.rs dan foydalaning.

Endi hozirgina yaratgan main.rs faylingizni kod muharririda oching.

Fayl nomi: main.rs

fn main() {
    println!("Hello, world!");
}

Ro'yxat 1-1: Hello, world! ni chop etuvchi dastur

Faylni saqlang va Terminalda ~/projects/hello_world jildiga qayting. Linux yoki macOS da faylni kompilyatsiya qilish va ishga tushirish uchun quyidagi buyruqlarni kiriting:

$ rustc main.rs
$ ./main
Hello, world!

Windowsda ./main ning o'rniga .\main.exe buyrug'ini kiriting:

> rustc main.rs
> .\main.exe
Hello, world!

Operatsion tizimingizdan qat'i nazar, terminalda Hello, world! qatori chop etilishi kerak.Agar siz ushbu chiqishni ko'rmasangiz, yordam olish usullari uchun O'rnatish bo'limining ”Muammolarni bartaraf etish” bo'limiga qayting.

Agar Hello, world! chop etilgan bo'lsa, tabriklaymiz! Siz rasmiy ravishda Rust dasturini yozdingiz. Bu sizni Rust dasturchisiga aylantiradi - xush kelibsiz!

Rust dasturining tuzilishi.

Keling "Hello, world!" dasturiga chuqurroq nazar solamiz. Boshqotirmaning 1-qismi:

fn main() {

}

Bu qatorlar main nomli funksiyani e'lon qiladi. main funksiyasi alohida: u har doim bajariladigan Rust dasturida ishlaydigan birinchi koddir. Bu yerda birinchi satr hech qanday parametrga ega boʻlmagan va hech narsani qaytarmaydigan main funksiyasini eʼlon qiladi. Agar parametrlar mavjud bo'lsa, ular () qavslar ichiga kiradi.

Funksiyasing tanasi {} bilan o'ralgan. Rust har bir funksiyalarda e'lon qilishda {} dan foydalanishni talab qiladi.

Eslatma: Agar siz Rust loyihalarda standart usulda kod yozmoqchi bo'lsangiz kodingizni maʼlum bir uslubda formatlash uchun rustfmt nomli avtomatik formatlash vositasidan foydalanishingiz mumkin (batafsilroq rustfmt D ilovasi -da) Rust jamoasi ushbu vositani standart Rust distributiviga kiritdi, chunki rustc kabi, u allaqachon kompyuteringizga o'rnatilgan bo'lishi kerak!

main funksiyaning tanasi quyidagi kodni o'z ichiga oladi:

#![allow(unused)]
fn main() {
    println!("Hello, world!");
}

Shu bir qator kod shu kichik dasturdagi barcha ishni amalga oshiardi: u matnni ekranga chop etadi.Bu yerda ahamiyat qaratish zarur bo'lgan to'rtta muhim narsalar bor.

Birinchidan, Rust style to'rtta bo'shliqdan iborat tab emas

Ikkinchidan, println! Rust makrosini chaqiradi. Agar u funktsiyani o'rniga chaqirgan bo'lsa, u println (! belgisiz) sifatida kiritiladi. Biz Rust makrolari haqida 19-bobda batafsilroq muhokama qilamiz.Hozircha siz shuni bilishingiz kerakki, ! belgisidan foydalanish oddiy funksiya o‘rniga makrosni chaqirayotganingizni anglatadi va makrolar har doim ham funksiyalar bilan bir xil qoidalarga amal qilmaydi.

Uchinchidan, siz "Hello, world!" qatorini ko'rasiz. Bu satrni argument sifatida println! ga uzatamiz va satr ekranga chop etiladi.

To'rtinchidan, satrni nuqtali vergul (;) bilan tugatamiz, bu esa bu ifoda tugaganligini va keyingisi boshlashga tayyorligini bildiradi. Rust kodining aksariyat satrlari nuqtali vergul bilan tugaydi.

Kompilyatsiya va ishga tushirish alohida bosqichlardir

Siz yangi yaratilgan dasturni ishga tushirdingiz, shuning uchun jarayonning har bir bosqichini ko'rib chiqamiz.

Rust dasturini ishga tushirishdan oldin uni Rust kompilyatoridan foydalanib, rustc buyrug‘ini kiritib, unga manba faylingiz nomini quyidagi tarzda kiritishingiz kerak:

$ rustc main.rs

Agar siz C yoki C++ bilan ishlagan bo'lsangiz, bu gcc yoki clang ga o'xshashligini sezasiz. Muvaffaqiyatli kompilyatsiyadan so'ng Rust binary bajariladigan faylni chiqaradi.

Linux, macOS va Windows-dagi PowerShell-da siz shelldagi ls buyrug'ini kiritish orqali bajariladigan faylni ko'rishingiz mumkin:

$ ls
main  main.rs

Linux va macOS-da siz ikkita faylni ko'rasiz. Windows-dagi PowerShell bilan siz CMD-dan foydalangan holda ko'rgan uchta faylni ko'rasiz. Windows-da CMD bilan siz quyidagilarni kiritasiz:

> dir /B %= the /B faqat fayl nomlarini ko'rsatishni aytadi =%
main.exe
main.pdb
main.rs

Bu sizga .rs kengaytmali kod faylini, bajariluvchi faylni(Windowsda main.exe boshqa barcha tizimlarda main), va Windowsdan foydalanayotganingizda, debugging ma'lumotlarini o'z ichida saqlovchi .pdb kengaytmali faylni ko'rsatadi.

Bu yerdan siz main yoki main.exe faylini ishga tushirasiz, masalan:

$ ./main # or .\Windows-da main.exe

Agar sizning main.rs faylingiz “Hello, world!” dasturi bo'lsa, bu dastur ekranga Hello, world! matnini chop etadi.

Agar siz Ruby, Python yoki JavaScript kabi dinamik tilni yaxshi bilsangiz, dasturni alohida bosqichlar sifatida kompilyatsiya qilish va ishga tushirishga odatlanmagan bo'lishingiz mumkin. Rust - bu oldindan tuzilgan kompilyatsiya tili, ya'ni siz dasturni kompilyatsiya qilishingiz va bajariladigan faylni boshqa birovga berishingiz mumkin va ular Rustni o'rnatmasdan ham uni ishga tushirishlari mumkin.Agar siz kimgadir .rb, .py yoki .js faylini bersangiz, ularda Ruby, Python yoki JavaScript ilovasi oʻrnatilgan boʻlishi kerak (mos ravishda). Ammo bu tillarda dasturni kompilyatsiya qilish va ishga tushirish uchun faqat bitta buyruq kerak bo'ladi. Til dizaynida hamma narsa o'zaro kelishuvdir.

Oddiy dasturlar uchun rustc bilan kompilyatsiya qilish juda mos keladi, lekin loyihangiz o'sib borishi bilan siz barcha variantlarni boshqarishni va kodingizni almashishni osonlashtirishni xohlaysiz. Endi, biz siz bilan haqiqiy Rust dasturlarini tuzishda qulaylik yaratuvchi Cargo yordamchisi bilan tanishamiz.