Menu
CoddyTech

Функции с параметрами

Часть раздела Добавляем интерактивность путешествия по 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