пять примеров использования функций с параметрами по умолчанию в Flutter и StatefulWidget. Они покажут, как можно задавать значения по умолчанию с помощью позиционных и именованных параметров в Dart.
Пример 1: Функция приветствия с параметром по умолчанию
В этом примере используется позиционный параметр с String name = 'Baias'. Если пользователь не вводит имя, будет использовано значение по умолчанию 'Baias'.
Объяснение: Здесь greet имеет позиционный параметр name со значением по умолчанию 'Baias'. Если greet() вызывается без аргумента, используется это значение по умолчанию.
Пример 2: Функция вычисления суммы с именованным параметром по умолчанию
Функция addNumber принимает обязательный параметр num1 и именованный параметр num2, который по умолчанию равен 5.
import 'package:flutter/material.dart';
class AddApp extends StatefulWidget {
@override
_AddAppState createState() => _AddAppState();
}
class _AddAppState extends State<AddApp> {
int result = 0;
// Функция сложения с именованным параметром по умолчанию
void addNumber(int num1, {int num2 = 5}) {
setState(() {
result = num1 + num2;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Addition Example")),
body: Center(child: Text("Result: $result", style: TextStyle(fontSize: 24))),
floatingActionButton: FloatingActionButton(
onPressed: () => addNumber(10),
child: Icon(Icons.add),
),
);
}
}
Объяснение: addNumber принимает позиционный параметр num1 и именованный параметр num2, который по умолчанию равен 5. Вызов addNumber(10) вычислит сумму 10 + 5.
Пример 3: Функция приветствия с необязательным именем
Здесь мы комбинируем позиционный и именованный параметры: имя по умолчанию — 'Guest', а age — необязательный именованный параметр.
import 'package:flutter/material.dart';
class WelcomeApp extends StatefulWidget {
@override
_WelcomeAppState createState() => _WelcomeAppState();
}
class _WelcomeAppState extends State<WelcomeApp> {
String greeting = "";
// Функция приветствия с позиционным и именованным параметрами
void welcome([String name = 'Guest', int age = 18]) {
setState(() {
greeting = "Welcome, $name! Age: $age";
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Welcome Example")),
body: Center(child: Text(greeting, style: TextStyle(fontSize: 24))),
floatingActionButton: FloatingActionButton(
onPressed: () => welcome(),
child: Icon(Icons.person),
),
);
}
}
Объяснение: Здесь welcome имеет позиционный параметр name с значением по умолчанию 'Guest' и age, которое по умолчанию равно 18.
Пример 4: Функция с именованным параметром по умолчанию для форматирования сообщения
Функция displayMessage принимает обязательное message и имеет bold с значением по умолчанию false.