Menu
CoddyTech
flag Ar iconالعربيةdown icon

الدوال ذات المعاملات

جزء من قسم إضافة التفاعلية في رحلة Flutter على Coddy. الدرس 7 من 34.

يمكن للدالة أن تتلقى قيمة في كل مرة تستدعيها فيها. تُسمّى هذه القيمة مُعامِلًا، وتُكتب بين القوسين مع نوعها:

void greet(String name) {
  print('Hi, $name!');
}

greet('Ada');    // مرحبًا، Ada!
greet('Linus');  // مرحبًا، Linus!

داخل الدالة، يُعدّ name متغيّرًا يحتفظ بالقيمة التي مُرّرت إليه. وهكذا تنفّذ دالة واحدة الآن عمل دوال كثيرة.

لا يمكن للزر تمرير قيمة من تلقاء نفسه: يتطلب onPressed: دالة بلا مُعامِلات. لذا أَحِط الاستدعاء بدالة صغيرة بلا اسم، من النوع الذي تعرّفت إليه في زرّك الأول:

ElevatedButton(
  onPressed: () { greet('Ada'); },
  child: Text('Ada'),
)
challenge icon

التحدي

سهل

استبدل orderTea بدالة واحدة هي order تأخذ String drink وتطبع One Tea, please أو One Coffee, please أو One Juice, please. اجعل الأزرار الثلاثة تستخدمها.

جرّب بنفسك

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

void orderTea() {
  print('One Tea, please');
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              ElevatedButton(onPressed: orderTea, child: Text('Tea')),
              SizedBox(height: 12),
              ElevatedButton(onPressed: () {}, child: Text('Coffee')),
              SizedBox(height: 12),
              ElevatedButton(onPressed: () {}, child: Text('Juice')),
            ],
          ),
        ),
      ),
    );
  }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس إضافة التفاعلية

تدرّب بنفسك: مترجم Flutter عبر الإنترنت