
Dart & Flutter: parametry funkcji – required, positional, optional & named
Parametry funkcji w Dart
Required
'Dart parameters', tj. parametry funkcji... Nic ciekawego, co? Nic bardziej mylnego!
No, chyba że mówimy o pierwszym rodzaju, czyli ‚required’ - jest to najzwyklejszy rodzaj parametru, który na pewno znasz z innych języków.
void func(int i, int j) {}
Wywołując powyższą metodę, musisz podać i oraz j.
Positional & Optional
Tu się zaczyna robić ciekawiej. Spójrz na deklarację metody:
void func([String name]) {}
Wywołując ją, możesz, ale nie musisz podać wartości ,name’. Jeśli jej nie podasz, zostanie jej przypisany domyślnie ‚null’.
void func([String name = 'Dawid']) {}
Teraz gdy wywołasz funkcję ‚func’ bez podania ‚name’, nie zostanie jej przypisany ‚null’, ale tekst ‚Dawid’.
Można mieć kilka parametrów typu ‚positional’:
void func([String name = 'Dawid', int year]) {}
‚name’ i ‚year’ są tu opcjonalne, ale jeśli chcesz podać ‚year’ to musisz podać również ‚name’ - kolejność ma znaczenie!
func('Tomek', 2020); // Poprawne użycie
func(2020); // Niepoprawne użycie
Parametry ‚required’ i ‚positional’ mogą występować razem, o ile ‚required’ znajdą się przed ‚positional’
void func(String surname, [String name = 'Dawid', int year]) {}
Named parameters
Teraz moje ulubione. Masowo wykorzystywane przez widgety Flutter.
void func({String name, String surname}) {}
W tym przypadku oba parametry są opcjonalne z domyślną wartością ‚null’. Magia dzieje się jednak przy wywoływaniu metody:
func(
name: 'Dawid',
surname: 'Wnukowski',
// Mały tip: przy ostatnim parametrze można dopisać ','
// i dzięki temu wymusić dodanie nowej lini przy formatowaniu
);
Czy to nie jest piękne!? To znaczy czytelne?
Parametry ‚named’ również można łączyć z ‚required’ oraz przypisywać im domyślne wartości, na tej samej zasadzie co w ‚optional’. Przykładzik:
void func(int currentYear, {String name, String surname = 'Abc'}) {}
func(2020, name: 'Robert');
W tym przypadku, wartości zmiennych będą następujące:
year -> 2020
name -> Robert
surname -> Abc
To by było na tyle. Artykuł ten znajdziesz na mojej stronie, gdzie dodatkowo dowiesz się o adnotacji required używanej we Flutterze:
https://dawidwnukowski.pl/dart-parameters-required-positional-optional-named-functions/
Leave Dart & Flutter: parametry funkcji – required, positional, optional & named to:
Read more #polish posts
Best Posts From Dawid Wnukowski
We have not curated any of vuko's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From Dawid Wnukowski
- Now I'm something else. Welcome again!
- Romancing SaGa Re;univerSe analysis - Newbie game designer plays games #3
- Newbie game designer plays games #2 Jumanji: Epic Run - Android and iOS mobile game analysis
- Newbie game designer plays games #1 WinWing - Android and iOS mobile game analysis
- The newbie game designer plays games #1 - WinWing
- W końcu wydałem kurs programowania Dart w języku polskim!
- Klasy i obiekty w Dart i Flutter - nauka programowania. Programowanie obiektowe.
- Parametry 'named' (opcjonalne) we Flutter i Dart
- Parametry 'positional' w funkcjach Flutter i Dart
- Deep Sky Derelicts #9 - granie na macu ;]