Функции в целом - не только в дротике - состоят из 3 вещей:
Это как в математике, например, если у вас есть (у = х + 1).Это функция, которая принимает «x» в качестве входных данных, а затем выполняет процесс для этого «x», который добавляет к нему «1» и вещь возвращает результат в «y».В этом простом примере типом ввода является число, а типом вывода также является число.Однако в программировании это не всегда так.Например, у вас может быть функция, которая принимает слово в качестве ввода, а затем подсчитывает, сколько символов в этом слове, и возвращает общее количество символов в этом слове.Но, возможно, вам не нужно знать этот номер.Может быть, вам просто нужно сохранить его в базе данных и вернуться к нему позже.В этом случае вам не нужно возвращать номер или что-либо возвращать.Следует просто сохранить его в базе данных.Что делать, если у вас уже есть это слово в базе данных, и у вас нет его длины там.Ваша функция в этом случае не должна принимать слово в качестве входных данных, она должна сама идти в базу данных, брать слово, считать символы и сохранять результат в базе данных.Видите ли, по сути, у нас все еще есть вход, процесс и выход, но вход и выход не передаются в или из функции напрямую, функция заботится о том, чтобы ее ввод и возвращение было выходным.Так что это действительно зависит от того, что вы хотите, чтобы ваша функция выполняла.
О коде, который вы опубликовали.Посмотрите на функцию play
, она принимает songNumber
в качестве ввода и имеет тип int
, затем она выполняет некоторую обработку, например, создает объект Player
и использует songNumber
как часть фактического имени файла песни.,Затем выводится песня, воспроизводимая с вашего динамика.Звук, который вы слышите, является фактическим выходом.Вам не нужны никакие другие выходы, кроме звука.Вот почему в коде он возвращается void
.С другой стороны, выход второй функции buildKey
представляет собой widget
типа Expanded
, который можно использовать внутри для кодирования.Функция buildKey
также принимает color
& songNumber
в качестве входа.Внутри buildKey
Expanded
виджет создается.Внутри этого виджета также создается FlatButton
.Первый вход (color
) используется для указания цвета FlatButton
, в то время как второй вход (songNumber
) передается функции FlatButton
onPressed
.Функция onPressed
, когда она вызывается нажатием кнопки, она вызывает функцию player
, передавая ей ранее songNumber
.