اشتراکها
اشتراکها
چگونه یک سیستم عامل بنویسیم ؟
اشتراکها
کتاب رایگان PowerShell Succinctly
Constants و Statics دو نوع متغیر هستند که در زمان کامپایل تعریف میشوند و در طول اجرای برنامه، دارای مقادیر ثابتی هستند. آنها در قوانین محدوده و نحوهی دسترسی، متفاوت هستند.
Constants
در این مثال، PI یک const با نوع f32 (یک عدد ممیز شناور) و مقدار 3.14159 است. constها همیشه inlined هستند؛ به این معنا که کامپایلر هر متغیر const را با مقدار آن در زمان کامپایل، جایگزین میکند.
constها را میتوان در هر محدودهای از جمله global scope تعریف کرد؛ اما مجاز به داشتن حالت تغییرپذیر، یا حاوی ارجاع نیستند. این مورد به این دلیل است که آنها تغییر ناپذیر هستند و نمیتوان آنها را در زمان اجرا تغییر داد. با این حال، آنها را میتوان در type annotations استفاده کرد:
Statics
در این مثال، COUNT یک متغیر استاتیک است که حاوی یک عدد صحیح میباشد و به 0 مقداردهی اولیه میشود. در اینجا از قطعهی unsafe استفاده میشود، زیرا استاتیک را میتوان در زمان اجرا جهش داد که در Rust ایمن نیست. بلوک unsafe به کامپایلر میگوید که کد داخل بلوک، تابع قوانین ایمنی Rust نیست (در آینده بیشتر توضیح داده خواهد شد).
استاتیک را میتوان در هر محدودهای از جمله global scope تعریف کرد و میتوان از آن در type annotations درست مانند constها استفاده کرد. آنها همچنین میتوانند برای ذخیرهی منابعی که باید بین رشتهها به اشتراک گذاشته شوند، یا برای مقداردهی اولیهی global scope استفاده شوند.
ثابتها و استاتیکها در Rust دو نوع متغیر هستند که در طول اجرای برنامه مقادیر ثابتی دارند. ثابتها تغییر ناپذیر هستند و نمیتوانند ارجاعی داشته باشند، در حالیکه استاتیک میتواند تغییر پذیر باشد و حاوی ارجاع باشد. هر دو را میتوان در هر scope ای تعریف کرد و در type annotations استفاده کرد. درک تفاوت بین ثابتها و استاتیک برای نوشتن کد Rust ایمن و کارآمد، مهم است.
Constants
یک const در Rust، با استفاده از کلمهی کلیدی const تعریف میشود و باید یک نوع annotation داشته باشد. میتوان به آن در زمان کامپایل، یک مقدار را اختصاص داد و در زمان اجرا نمیتوان آن را تغییر داد. در اینجا مثالی از تعریف ثابت آورده شده است:
const PI: f32 = 3.14159;
constها را میتوان در هر محدودهای از جمله global scope تعریف کرد؛ اما مجاز به داشتن حالت تغییرپذیر، یا حاوی ارجاع نیستند. این مورد به این دلیل است که آنها تغییر ناپذیر هستند و نمیتوان آنها را در زمان اجرا تغییر داد. با این حال، آنها را میتوان در type annotations استفاده کرد:
const STR: &str = "hello, world!"; let mut s = String::from(STR);
در این مثال، STR یک const است که شامل یک قطعه رشتهاست و در type annotations متغیر s استفاده میشود.
Statics
Statics در Rust با استفاده از کلمهی کلیدی static تعریف میشوند و شبیه به constها هستند؛ زیرا در زمان کامپایل تعریف میشوند و در طول اجرای برنامه دارای یک مقدار ثابت هستند. با این حال، آنها میتوانند قابل تغییر و حاوی ارجاع باشند؛ یک مثال:
static mut COUNT: i32 = 0; fn main() { unsafe { COUNT += 1; println!("count: {}", COUNT); } }
استاتیک را میتوان در هر محدودهای از جمله global scope تعریف کرد و میتوان از آن در type annotations درست مانند constها استفاده کرد. آنها همچنین میتوانند برای ذخیرهی منابعی که باید بین رشتهها به اشتراک گذاشته شوند، یا برای مقداردهی اولیهی global scope استفاده شوند.
ثابتها و استاتیکها در Rust دو نوع متغیر هستند که در طول اجرای برنامه مقادیر ثابتی دارند. ثابتها تغییر ناپذیر هستند و نمیتوانند ارجاعی داشته باشند، در حالیکه استاتیک میتواند تغییر پذیر باشد و حاوی ارجاع باشد. هر دو را میتوان در هر scope ای تعریف کرد و در type annotations استفاده کرد. درک تفاوت بین ثابتها و استاتیک برای نوشتن کد Rust ایمن و کارآمد، مهم است.
SourceForge, and its stablemate Slashdot, were acquired at the end of January by web publisher BIZX, LLC from DHI, formerly Dice Holdings. which had owned it since 2012. SourceForge was originally launched in 1999 by VA Software cofounded by Larry Augustin and James Vera. This company later became Geeknet and acquired Slashdot as part of Andover.net in 2000.
اشتراکها
مشخصات یک Commit خوب در Git
RIP passwords: new web standard designed to replace login method