Проверка принадлежности
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 10 из 78.
Ты уже проверяешь принадлежность с помощью in и not in: "cat" in pets ищет элемент массива, а "ell" in "hello" — текст внутри строки. Ещё три случая встречаются постоянно.
В словаре in проверяет только ключи. Чтобы найти значение, проверьте массив, возвращаемый values():
var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())true
false
trueОператор проверки вхождения также сравнивает типы. Текст, прочитанный с помощью OS.read_string_from_stdin(), является строкой, а строка "90" — это не целое число 90:
var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)false
trueМассив констант с допустимыми значениями и in заменяет длинную цепочку из or и также работает в защитном условии:
const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
var d when d in DIRECTIONS:
print("Going ", d)
_:
print("You cannot go there")Going westЗадание
ЛегкоВ программе есть массив names с именами учеников класса и словарь grades с учениками, у которых уже есть оценка. Она считывает имя ученика в student, а оценку — в grade (как текст).
Выведите три строки:
NAME is in the class.илиNAME is not in the class., проверяяnamesNAME has a grade.илиNAME has no grade., проверяя ключиgradesSomeone scored GRADE.илиNobody scored GRADE., проверяя значенияgrades
Замените NAME и GRADE на введённые значения. Для входных данных Dana и 85 вывод будет таким:
Dana is in the class.
Dana has no grade.
Someone scored 85.Попробуйте сами
extends Node
func _ready():
var names := ["Alice", "Bob", "Charlie", "Dana"]
var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
var student := OS.read_string_from_stdin()
var grade := OS.read_string_from_stdin()
# Выведите три строки
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript