Zero‑Indexing System
آخر تحديث: منذ 0 ثانية
· 13 مشاهدة
Zero‑Indexing System
- Most programming languages (including Dart) start counting positions from
0. - That means the first character of
"hello"is at index0, the second at1, etc.; soindex + 1gives you the human-friendly position. - Because of zero indexing, the last index is always
length - 1. For"hello"(length == 5), valid indexes are0through4. - When you iterate over a string or list, use
for (var i = 0; i < myString.length; i++)so you don’t go past the last element.
dart
void main() {
String name = "Ali";
print(name[2]); // prints 'i'
}
name[2]مش property، ده أسلوب للوصول (access) لحرف داخل الـStringباستخدام index operator (مِش property).Stringفي Dart فيها properties زيlength,isEmpty,runtimeType; أماname[2]فهو index access ياخد الحرف اللي على الموقع رقم 2.- تقدر تعتبره شغلة من نوع “operator” مش property، لأنك بتستخدم الأقواس
[]مع رقم.
لو حابب أشرح الفرق بالإنجليزي أو أديك ملخص بـ bullet عن properties vs indexing، قولي.
Operation (عملية)
Operation (عملية)
- عملية هي أي تعبير يمثّل شي بتعمله على قيمة: جمع (
+)، مقارنة (==)، الوصول عبر الفهرس (name[2])، أو استدعاء وظيفة (trim()). - بالنسبة لـ
Stringفي Dart:name.length→ property (يعطي عدد الأحرف).name[2]→ عملية index operator: بتشتغل على السلسلة وتُرجع الحرف عند الموقع رقم2.name + "!"→ عملية جمع (concatenation) تنتج سلسلة جديدة.name.contains("Ali")→ عملية تحقق (method call) ترجعbool.
- العمليات ممكن تكون من النوع
operator(زي[],+,==) أوmethod(زيtoUpperCase())، والفرق إن الـ operator بيشتغل مباشرة على القيمة بدون اسم وظيفة، بينما الـ method هي دالة.
أمثلة بسيطة تبين الفرق إذا حابب؟