Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmFnRB 249 of 350 menu
◀ ▶

Флаги в функциях в Go

В функциях можно использовать флаги в неявном виде с помощью инструкции return. Давайте посмотрим, как это делается. Пусть у нас есть следующая функция, проверяющая, что все элементы среза положительные числа:

package main func isPositive(arr []int) bool { flag := true for _, elem := range arr { if elem < 0 { flag = false } } return flag } func main() { }

Давайте перепишем код функции с помощью неявного использования флагов:

package main func isPositive(arr []int) bool { for _, elem := range arr { if elem < 0 { return false } } return true } func main() { }

Как это работает: если в срезе найдется нужный элемент - мы выйдем из функции (и из цикла тоже) с помощью return. Но если в срезе не найдется нужный элемент - выхода из функции не произойдет и выполнение дойдет до команды return true. И получится, что функция вернет true в знак того, что в срезе все элементы положительные.

Сделайте функцию, которая параметром будет принимать срез с числами, и проверять, что все элементы в этом срезе являются четными числами.

Сделайте функцию, которая параметром будет принимать число и проверять, что все цифры этого числа являются нечетными.

Сделайте функцию, которая параметром будет принимать срез и проверять, есть ли в этом срезе два одинаковых элемента подряд.

Функция может отдать логическое значение и без цикла. Ветки if, которые возвращают только true или false, можно заменить самим сравнением:

package main import "fmt" func isEven(n int) bool { if n%2 == 0 { return true } return false } func main() { fmt.Println(isEven(4)) // выведет true fmt.Println(isEven(5)) // выведет false }

Сокращенная форма отдает само сравнение:

package main import "fmt" func isEven(n int) bool { return n%2 == 0 } func main() { fmt.Println(isEven(4)) // выведет true fmt.Println(isEven(5)) // выведет false }

Дана следующая функция:

func func(a, b string) bool { if a == b { return true } return false }

Перепишите ее код в сокращенной форме согласно изученной теории.

Дана следующая функция:

func func(a, b int) bool { if a != b { return true } return false }

Перепишите ее код в сокращенной форме согласно изученной теории.

Дана следующая функция:

func func(n int) bool { if n == 10 { return true } return false }

Перепишите ее код в сокращенной форме согласно изученной теории.

Дана следующая функция:

func func(n int) bool { if n >= 1 && n <= 5 { return true } return false }

Перепишите ее код в сокращенной форме согласно изученной теории.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить