To and from Strings(Katarlara ve Katarlardan)

String(Katar)'e Dönüşüm

Herhangi bir tipi Stringe dönüştürmek gayet basit bir şekilde ToString niteliğini o tip için implemente etmektir. Ama bunu doğrudan yapmak yerine, otomatik olarak ToString sağlayan ve aynı zamanda print! bölümünde de anlatıldığı gibi tipi yazdırmaya izin veren fmt::Display niteliğini uygulamalısınız.

use std::fmt;

struct Circle {
    radius: i32
}

impl fmt::Display for Circle {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "Circle of radius {}", self.radius)
    }
}

fn main() {
    let circle = Circle { radius: 6 };
    println!("{}", circle.to_string());
}

String'leri Ayrıştırmak

Bir string'i dönüştürmek için en sık kullanılan tiplerden biri sayılardır. Bunun deyimsel yaklaşımı; parse fonksiyonunu kullanmak, tip çıkarımını düzenlemek veya 'turbofish' söz dizimini kullanarak ayrıştırılacak tipi belirlemektir. Her iki alternatif de aşağıdaki örnekte gösterilmektedir.

Bu, FromStr niteliği bu tip için implemente edildiği sürece string'i belirtilen tipe dönüştürecektir. Standart kütüphane içindeki çeşitli tipler için implemente edilir. Bu fonksiyonelliği kullanıcı tanımlı bir tip üzerinde elde etmek için, bu tip üzerinde FromStr niteliğini implemente etmeniz yeterlidir.

fn main() {
    let parsed: i32 = "5".parse().unwrap();
    let turbo_parsed = "10".parse::<i32>().unwrap();

    let sum = parsed + turbo_parsed;
    println!("Sum: {:?}", sum);
}