রাস্ট

ডেভসংকেত

রাস্ট হচ্ছে মেমরি সেইফ কম্পাইলড্ ল্যাংঙ্গুয়েজ যার পারফর্মেন্স সি/সি++ এর কাছাকাছি বা কখনো কখনো তাদের থেকে ভালো

কার্গো

নতুন প্রজেক্ট তৈরি করা

cargo init YOUR_PROJECT

কোনো CLI ইন্সটল করা

cargo install YOUR_CLI

git ছাড়া প্রজেক্ট তৈরি করা

cargo init YOUR_PROJECT --vcs none

কারেন্ট ডাইরেক্টরিতে প্রজেক্ট তৈরি করা

cargo init .

প্রজেক্ট বিল্ড করা(debug)

cargo build

প্রজেক্ট বিল্ড করা(release)

cargo build --release

টেস্ট রান করা

cargo test

কার্গো

প্রজেক্ট রান করা(debug)

cargo run

প্রজেক্ট রান করা(release)

cargo run --release

অন্য টার্গেট এর জন্য কম্পাইল করা

cargo build --target=YOUR-TARGET

প্রজেক্টের docs জেনারেট করা

cargo doc

Cargo.toml

কোনো ডিপেন্ডেন্সির নামসহ ভার্সন

CRATE = "CRATE_VERSION"

ক্রেটের নির্দিষ্ট ফিচার ব্যবহার করা

CRATE = { version = "VERSION", features = ["FEATURE-1"] }

লিংক টাইম অপ্টিমাইজেশন ব্যবহার করা(release বিল্ড)

[profile.release]
lto=true

লিংক টাইম অপ্টিমাইজেশন ব্যবহার করা(debug বিল্ড)

[profile.debug]
lto=true

rustup

nightly toolchain ব্যবহার করা

rustup default nightly

toolchain আপডেট করা

rustup update toolchain

Target ইনস্টল করা

rustup target add TARGET

বিভিন্ন রিসোর্স

The Book

https://docs.rust-lang.org/book

Package registry

https://crates.io

Crates documentations

https://docs.rs

Traits

আর্গুমেন্টে String এবং str দুটাই অ্যালাউ করা

fn the_function(arg: impl AsRef<str>) {
	//do something
}

struct এর জন্য কোনো trait ইমপ্লিমেন্ট করা

impl SomeTrait for SomeStruct {
	// Trait stuff here
}

trait ডিক্লেয়ার করা

trait SomeTrait {
	// Your trait stuff here
}

টেস্টিং

টেস্ট মডিউল

#[cfg(test)]
mod test{
	#[test]
	fn test() {
		assert_eq!(2+2, 4);
	}
}

General

Panicking

panic!("Houston, we have a problem");

Match

match Somestuff {
	2 => println!("It's 2!"),
	_ => println!("It's something else")
}

Struct

struct SomeStruct {
	some_private_value: String,
	pub some_public_value: u64
}

Implementing struct

impl SomeStruct {
	pub fn new() {}
}

ডেটা টাইপ

অক্ষর

char

স্ট্রিং

String

ইন্টিজার টাইপ (i8 = 8 bit, i16 = 16 bit, i32 = 32 bit, i64 = 64 bit, i128 = 128 bit, isize = সিস্টেম ডিপেন্ডেন্ট)

i8, i16, i32, i64, i128, isize

ফ্লোটিং পয়েন্ট টাইপ (f32 = 32 bit, f64 = 64 bit)

f32, f64

বুলিয়ান

bool

টাপল/টুপল

(i32, f64, u8)

Function

Main Function

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

Create Custom Function

fn function_name() {
	//code area

Function call with Parameters Passing

fn main() {
	another_function(5);
}

fn another_function(x: i32) {
	println!("The value of x is: {x}");

Comments/কমেন্ট করা

Single Line কিভাবে কমেন্ট করবেন

// comment here anything

Multi Line কিভাবে কমেন্ট করবেন

/* comment here anything 
 The next one isn't allowed because outer doc comments 
require an item that will receive the doc*/

এই চিটশিটে কন্ট্রিবিউট করেছেনঃ

  • morshedulmunna

    Morshedul Munna

    username/morshedulmunna

  • jonaed1230

    jonaed1230

    username/jonaed1230

  • iamraufu

    iamraufu

    username/iamraufu

  • mdgaziur

    mdgaziur

    username/mdgaziur

ডেভসংকেত

বাংলা চিটশিটের ভান্ডার

devsonket.com

প্রিন্ট করুন