Dawid Wnukowski avatar

Dart & Flutter: parametry funkcji – required, positional, optional & named

vuko

Published: 21 Feb 2020 › Updated: 21 Feb 2020Dart & Flutter: parametry funkcji – required, positional, optional & named

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:

Written by

Przedsiebiorca. Indie mobile developer. Flutter Freelancer.

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