Pain01-Words

Rust_lang_0_[ENTRY point, print something, etc]]

2025-09-16

RUST

خوب من یک چیزایی در مورد زبان راست یاد
رفتم خیلی ابتدایی هست ولی دوست داشتم که خودم یک بار درسش رو بدم

1.Entry point

خوب ما یک اینتری پوینت داریم که برنامه ما از اونجا کد های ما رو کمپایل میکنه که تابع

main

هستش

بدین صورت

fn main(){
// comment somthing
}

2.print somthing(low level)

دقیقا مثل زبان سی یا زبان های دیگه

اگر بخواید چیزی رو چاپ کنید باید از تابع

println!();

استفاده کنید

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

3.Set Variable

خوب برای ست کردن متغییر روش های متعددی هست و همچنین انواع داده های زیادی هست سعی میکنم با مثال اینا رو بگم

fn main(){
// int
let a:i32 = -545; // this is 32bit number and + OR -
let b:u16 = 5465; // this is 16bit number in another word is + number
let c = 46; // by default is i32

// float
let d:f32 = 55.232; // 32bit float number
let e:f64 = 45456.151531; // 64bit float number

//char
let f:char = 'a';

//string
let g:&str = "Hi Everybody!";
let h:String = "Hi Everybody!".to_owned();
let i:String = String::from("Hi Everybody!");

}

4.Suffix

خوب اینم از انواع متغییر حالا این متغییر ها رو اینطوری هم میشه تعریف کرد که اسمش
suffix هست

fn main() {
let a = 5656_u32;
}

یک

_<data_type>

در پایان اون متغییر اضافه میکنیم

5.Type Aliases

خوب یک چیز آپشنال هم هست ما میتونیم نام مستعار بدیم به دیتا تایپ ها مثل این :

fn main() {
type age =u32;
let a:age = 546;
}

این خیلی جالبه

6.Mutability

خب یک موضوعی هست داخل زبان راست در مورد

mutability

که من وقتی متغییری رو تعریف میکنم حق تغییر دادنش رو ندارم چون به اصطلاح

immutable

و من باید

mutableاش

بکنم

اینجوری

fn main() {
// Wrong way:
let a:i32= 546;
a = 78; // it's give me error

//mutability
let mut b:i32 = 5456465;
b=6516;
}

7.Scope

و مبحث بعدی در مورد

scope

هستش در زبان راست ما میتونیم کلی اسکوپ متعدد درست کنیم و متغییر هایی رو اونجا تعریف کنیم که در جا های دیگه کاربرد ندارن ولی میتونیم از متغییر های گلوبال استفاده کنیم

fn main() {
type age =u32;
let a:age = 546;

{
let b:i16 = -55;
}
//Scope
}

8.Constant

خوب مبحث جالب بعدی

constant

ها هستن که ما متغییر هایی رو تعریف میکنیم که قابلیت تعویض ندارن و این خیلی باحاله و میتونیم از شون هر جایی استفاده کنیم

const PI:f32 = 3.14;
fn main() {
const K:u32 = 9;

}

9.Shadowing

خوب موضوع بعدی

shadowing

هستش که وقتی یک متغییر رو دوبار تعریف میکنیم متغییر جدید سایه میندازه روی متغییر قدیمی و باعث میشه دیگه به قبلی دسترسی نداشته باشیم از نظر شخصی من بده چون ممکنه یک جا دو بار متغییر ست کنیم و لاجیک برنامه به هم بخوره

fn main() {
let k:u32 = 9;
let k:u32 = 4546;
// The result of k is 4546
}

10.Print somthing (medium level)

خوب موضوع پایانی هم چاپ متغییر ها هستش که اونم به دو صورت انجام میشه

fn main() {
let a = 15;
println!("{}",a); // read it : print line macro rule
println!("{a}"); // another way

print!("{a}"); // print with no \n
}

خوب در قسمت بعدی در مورد چگونگی گرفتن ورودی و اسپلیت کردنش یا تغییر دیتاتایپ ها صحبت میکنیم

← Back to Home