با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره آموزش زبان برنامه نویسی دارت Dart در خدمت شما هستیم.
در این جلسه قصد داریم به آموزش Runes در زبان دارت Dart بپردازیم.
همانطور که در جلسات پیش اشاره کردیم، رشته ها در واقع توالی از کاراکتر ها هستند.
زبان دارت نیز رشته ها را به عنوان واحد های کد یونیکد UTF-16 نشان میدهد.
یونیکد (Unicode) فرمت یا قالبی است که یک مقدار منحصر به فرد برای هر کاراکتر، حرف، شماره و نماد تعریف میکند.
از آن جایی که رشته ها در زبان دارت توالی از یونیکد UTF-16 هستند، مقادیر یونیکد ۳۲ بیتی (UTF-32) در رشته ها با یک گرامر خاص نمایش داده میشوند.
یک Rune، یک نشان دهنده عددی یک نشانه کد یونیکد است.
کلاس String در کتابخانه dart:core مکانیزمی برای دسترسی به rune ها فراهم کرده است.
Rune ها و یا واحد های کد string از سه طریق قابل دسترس هستند:
با استفاده از اندیس های واحد های کد در رشته ها میتوان به آن دسترسی داشت.
این تابع یک واحد کد UTF-16 در اندیس داده شده را میدهد.
گرامر:
1 | String.codeUnitAt(int index); |
مثال:
1 2 3 4 5 6 7 8 | import 'dart:core'; void main(){ f1(); } f1() { String x = 'Runes'; print(x.codeUnitAt(0)); } |
خروجی:
1 | 82 |
این Property واحد های کد UTF-16 رشته مورد نظر را برمیگرداند.
مثال:
1 2 3 4 5 6 7 8 | import 'dart:core'; void main(){ f1(); } f1() { String x = 'Runes'; print(x.codeUnits); } |
خروجی:
1 | [82, 117, 110, 101, 115] |
این Property نیز Rune های یک رشته را برمیگرداند.
مثال:
1 2 3 4 5 6 | void main(){ "A string".runes.forEach((int rune) { var character=new String.fromCharCode(rune); print(character); }); } |
خروجی:
1 2 3 4 5 6 7 | A s t r i n g |
کد پوینت های یونیکد معمولا به صورت uXXXX\ به کار میروند که XXXX یک مقدار هگزادسیمال ۴ رقمی است.
اگر میخواهید مقداری بیش از ۴ رقم را مشخص کنید، آن را داخل {} قرار دهید.
مثال:
1 2 3 4 | main() { Runes input = new Runes(' \u{1f605} '); print(new String.fromCharCodes(input)); } |
کد بالا تصویر زیر را نمایش میدهد:
جلسه آموزش Runes در زبان دارت نیز به پایان رسید.
در جلسه بعد به آموزش توابع در زبان دارت خواهیم پرداخت. با ما همراه باشید.