Yazılım Geliştirme 1 dakika okuma

Rust ile Sistem Programlama Giris

Rust temel kavramlari: ownership, borrowing, lifetimes ve sistem programlama ornekleri.

E
Emre Cihan
· · 55 görüntüleme

Neden Rust

Bellek guvenligi garantisi, C/C++ performansi, modern dil ozellikleri. Mozilla, Linux kernel, Android ve WebAssembly icin tercih edilmekte.

Kurulum

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustc --version
cargo --version

Ownership Kurali

fn main() {
    let s1 = String::from('merhaba');
    let s2 = s1; // s1 artik gecersiz (move)
    // println!("{}", s1); // HATA!
    println!("{}", s2); // OK

    // Klonlamak icin:
    let s3 = s2.clone();
    println!("{} {}", s2, s3); // Her ikisi gecerli
}

Borrowing ve References

fn uzunluk(s: &String) -> usize {
    s.len() // Sahiplik alinmadan kullanilir
}

fn main() {
    let s = String::from('merhaba');
    let uzun = uzunluk(&s); // Referans gecir
    println!("{}: {} karakter", s, uzun); // s hala gecerli
}

Struct ve impl

struct Dikdortgen {
    en: f64,
    boy: f64,
}

impl Dikdortgen {
    fn alan(&self) -> f64 {
        self.en * self.boy
    }

    fn kare_mi(&self) -> bool {
        self.en == self.boy
    }
}

fn main() {
    let d = Dikdortgen { en: 10.0, boy: 5.0 };
    println!("Alan: {}", d.alan());
    println!("Kare mi: {}", d.kare_mi());
}

Hata Yonetimi

use std::fs;
use std::io;

fn dosya_oku(yol: &str) -> Result<String, io::Error> {
    fs::read_to_string(yol)
}

fn main() {
    match dosya_oku('config.txt') {
        Ok(icerik) => println!("Icerik: {}", icerik),
        Err(e)     => eprintln!("Hata: {}", e),
    }
    // ? operatoru ile daha kisa:
    // let icerik = fs::read_to_string('config.txt')?;
}

Rust'in ownership sistemi runtime hatalarini derleme zamaninda yakalar.

Paylaş: Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı

İlgili yazılar

Yazılım Geliştirme
Python mu JavaScript mi? Hangisini Öğrenmelisin?
1 dk
Yazılım Geliştirme
Programlama Öğrenmek İçin Matematik Bilmek Gerekir mi?
1 dk
Yazılım Geliştirme
Yazılımcı Olmak İçin Üniversite Şart mı?
1 dk
Yazılım Geliştirme
2026'da En Çok Kazandıran Yazılım Alanları
1 dk