Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions lessons/al/chapter_0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
- title: >-
Hello World!
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&code=fn%20main()%20%7B%0A%20%20%20%20println!(%22Ckemi!%2C%20%F0%9F%A6%80%22)%3B%0A%7D%0A
content_markdown: |
<img src="/intro.png" alt="Welcome to the Tour of Rust" style="width: 100%; margin-bottom: 20px; border-radius: 10px;">

**Happy 3 Year Anniversary 🎉**

Welcome to the *Tour of Rust*. This is meant to be a step by step guide through the features of the Rust programming language. Rust is often considered a language with a steep learning curve, but I hope I can convince you there's a lot to explore before we even get to complex parts.

You can also find this guide in these languages:

* [Deutsch](00_de.html)
* [Español](00_es.html)
* [Français](00_fr.html)
* [Interlingue](00_ie.html)
* [Magyar](00_hu.html)
* [Polski](00_pl.html)
* [Português Brasileiro](00_pt-br.html)
* [Română](00_ro.html)
* [Русский](00_ru.html)
* [简体中文](00_zh-cn.html)
* [繁體中文](00_zh-tw.html)
* [日本語](00_ja.html)
* [한국어](00_ko.html)
* [Türkçe](00_tr.html)
* [Ελληνικά](00_gr.html)
* [Українська](00_ua.html)
* [ภาษาไทย](00_th.html)
* [Italian](00_it.html)
* [Tiếng Việt](00_vi.html)
* [العربية](00_ar.html)

If you have suggestions on content or would like to contribute to translations, check out Tour of Rust's [github repository](https://github.com/richardanaya/tour_of_rust).

You can navigate through the tour with keyboard <span class="emoji">⬅️</span> and <span class="emoji">➡️</span>.

In this classic example we show Rust's support for Unicode strings.
233 changes: 233 additions & 0 deletions lessons/al/chapter_1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
- title: Kapitulli 1 - Bazat
content_markdown: >
Në këtë kapitull të parë ne do të eksplorojmë bazat
me funksionet, variablat dhe llojet më primitive. Gëzohemi që ju kemi
ne bord!


Gjithashtu! Në rast se po pyesni kush eshte kjo gaforre e adhurueshme qe
po te flet, unë jam **Ferris**,
maskota jozyrtare për gjuhën e programimit Rust. Gëzohem që u njohëm.


Pasi të njiheni me Rust, mund ta quani veten **Rustacean**. Kjo është
si e quajnë veten njerëzit që përdorin, kontribuojnë ose janë të interesuar për Rust.
- title: Sheshi i Lojërave Rust
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Ky tur përdor një mjet kodimi ndërveprues nga [Rust
Playground](https://play.rust-lang.org).


Është një mënyrë e shkëlqyer për të luajtur me Rust dhe për t'u treguar të tjerëve kreativitetin tuaj
dhe te maresh pjese ne sfida!
- title: Variablat
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Variablat deklarohen duke përdorur fjalën kyçe **let**.


Kur caktoni një vlerë, Rust do të jetë në gjendje të konkludojë llojin e variabiles tuaj
99% te rasteve.

Nëse nuk mundet, mund të shtoni llojin në deklaratën tuaj të variabiles.


Vini re se si mund t'i caktojmë të njëjtit emër variabël shumë herë. Kjo është
quhet variabël

hijezimi dhe lloji mund të ndryshohet për referenca të mëvonshme për këtë
emer.


Emrat e variabilave jane sa here ne `snake_case`.
- title: Ndryshimi i variabilava
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Rust kujdeset shumë për variablat që mund të modifikohen. vlerat

ndahen në dy lloje:


* **mutable/e ndryshueshme** - kompajleri do të lejojë që variabila të shkruhet dhe
te lexohet.

* **immutable/e pa nryshueshme** - kompajleri do të lejojë vetëm leximin e ndryshores


Vlerat e ndryshueshme shënohen me një fjalë kyçe **mut**.


Ne do të kemi më shumë për të thënë më vonë për këtë koncept, por tani për tani vetëm mbani një sy
jashtë për këtë fjalë kyçe.
- title: Tipet Bazike
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021

content_markdown: >
Rust ka një sërë llojesh të njohura:


* booleans - `bool` për paraqitjen e vërtetë/false

* numra të plotë të panënshkruar - `u8` `u16` `u32` `u64` `u128` për përfaqësim
numra të plotë jonegativë

* numra të plotë të nënshkruar - `i8` `i16` `i32` `i64` `i128` për përfaqësimin e numrave të plotë

* Numrat e plotë të madhësisë së treguesit - `usize` `isize` për paraqitjen e indekseve

dhe madhësive të gjërave në kujtesë

* pikë lundruese - `f32` `f64`

* karaktere - `char` për përfaqësimin e një karakteri të vetëm Unicode

* tuple - `(vlera, vlera, ...)` për kalimin e sekuencave fikse të vlerave në
rafte

* vargje - `[vlera, vlera, ...]` një koleksion elementësh të ngjashëm me fikse
gjatësia e njohur në kohën e përpilimit

* slices - një koleksion elementësh të ngjashëm me gjatësi të njohur në kohën e ekzekutimit

* `str` (prerja e vargut) - tekst me një gjatësi të njohur në kohën e ekzekutimit


Teksti mund të jetë më kompleks se sa jeni mësuar në gjuhë të tjera;

meqenëse Rust është një gjuhë programimi e sistemit, ajo kujdeset për kujtesën

çështje me të cilat mund të mos jeni mësuar. Ne do të hyjmë në këtë në detaje më vonë.


Llojet numerike mund të specifikohen në mënyrë eksplicite duke i bashkangjitur tipit në fund
të numrit (p.sh. "13u32", "2u8").
- title: Konvertimi i tipit bazë
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Ndryshku kërkon qartësi kur bëhet fjalë për llojet numerike. Një nuk mund

përdorni një `u8` për një `u32` rastësisht pa

gabim.


Fatmirësisht Rust i bën konvertimet e tipit numerik shumë të lehtë me fjalë kyçen
**as**.
- title: Konstantet
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Konstantet na lejojnë të specifikojmë një vlerë të përbashkët që përdoret gjatë gjithë kohës

nd kodin tone shumë herë me efikasitet. Në vend të kopjimit të vlerave si variablat

aty ku përdoren, konstantet zëvendësojnë drejtpërdrejt identifikuesin e tekstit ku
ata

përdoren me vlerën e tyre në kohën e përpilimit.


Ndryshe nga variablat, konstantet duhet të kenë gjithmonë lloje eksplicite.


Emrat konstant janë gjithmonë ne `SCREAMING_SNAKE_CASE`.
- title: Vargjet
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Një *array/varg* është një **përmbledhje me gjatësi fikse** të elementeve të të dhënave të gjitha të te njëjta
lloji.


Lloji i të dhënave për një *array* është `[T;N]` ku T është lloji i elementeve dhe N
është gjatësia fikse e njohur në kohën e përpilimit.


Elementet individuale mund të merren me operatorin `[x]` ku *x* është a
indeksi *usize* (duke filluar nga 0) i elementit që dëshironi.


Koleksionet me gjatësi dinamike, të quajtura shpesh vargje dinamike ose të ndryshueshme, janë
prezantuar në një kapitull të mëvonshëm rreth **Vektorëve**.
- title: Funksionet
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Një funksion ka zero ose më shumë parametra.


Në këtë shembull, funksioni *add* merr dy argumente të tipit `i32`
(numër i plotë i nënshkruar me gjatësi 32-bit).


Nëse thjesht dëshironi të ktheni një shprehje, mund të hiqni fjalën kyçe "kthim".
dhe pikëpresjes në fund, siç bëmë në funksionin *zbris*.


Emrat e funksioneve janë gjithmonë në `snake_case`.


Këshillë: nëse përcaktoni një funksion, të dhënat që ai pranon quhen parametra.
Nëse e thërrisni atë funksion dhe i kaloni të dhëna, atëherë ai quhet argumente.
- title: Vlerat e shumëfishta të kthimit
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
content_markdown: >
Funksionet mund të kthejnë vlera të shumta duke kthyer një **tuple**

të vlerave.


Elementet e dyfishta mund të referohen me numrin e tyre të indeksit.


Rust mbështet lloje të ndryshme destrukturimi që do t'i shohim në shumë forma,
duke lejuar

ne të nxjerrim nën-pjesë të strukturave të të dhënave në mënyra ergonomike. Të jesh në
kujdes!
- title: Kthe asgje
content_markdown: >
Nëse asnjë lloj kthimi nuk është specifikuar për një funksion, ai kthen një tuple bosh,
i njohur gjithashtu si një *njësi*.


Një tuple bosh përfaqësohet nga `()`.


Përdorimi i `()` është i pazakontë, por do të shfaqet aq shpesh sa është mirë të dihet
cfare po ndodh.
code: >-
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021
- title: Chapter 1 - Conclusion
content_markdown: >
Punë e bukur deri tani! Bazat e Rust nuk janë aq të këqija, apo jo? ne jemi

duke parë se si mendon përpiluesi Rust. Si programim sistemi
gjuhe

kujdeset shumë për madhësinë e vlerave në kujtesë, nëse gjërat mund të jenë
modifikuar apo jo,

dhe sigurohuni që matematika juaj të jetë ajo që dëshironi të jetë. Në vazhdim do të jemi
duke parë disa miq të vjetër:

"if" testet dhe "for".


Më shumë burime:


* [Youtube: Rust Cast - A deeper dive on Rust's primitive number
types](https://www.youtube.com/watch?v=n5TRBkbystY)

* [Website: Rust Book 2018 - A deeper description on basic data
types](https://doc.rust-lang.org/1.30.0/book/2018-edition/ch03-02-data-types.html)

* [Website: Rust Cheat Sheet - Data Types](https://cheats.rs/#basic-types)
Loading