Москва
Московская область
Санкт-Петербург
Ленинградская область
Алтайский край
Амурская область
Архангельская область
Астраханская область
Белгородская область
Брянская область
Владимирская область
Волгоградская область
Вологодская область
Воронежская область
Еврейская автономная область
Забайкальский край
Ивановская область
Иркутская область
Калининградская область
Калужская область
Камчатский край
Кемеровская область
Кировская область
Костромская область
Краснодарский край
Красноярский край
Курганская область
Курская область
Липецкая область
Магаданская область
Мурманская область
Ненецкий автономный округ
Нижегородская область
Новгородская область
Новосибирская область
Омская область
Оренбургская область
Орловская область
Пензенская область
Пермский край
Приморский край
Псковская область
Республика Адыгея
Республика Алтай
Республика Башкортостан
Республика Бурятия
Республика Дагестан
Республика Ингушетия
Республика Кабардино-Балкария
Республика Калмыкия
Республика Карачаево-Черкессия
Республика Карелия
Республика Коми
Республика Марий Эл
Республика Мордовия
Республика Саха (Якутия)
Республика Северная Осетия (Алания)
Республика Татарстан
Республика Тыва (Тува)
Республика Удмуртия
Республика Хакасия
Республика Чечня
Республика Чувашия
Ростовская область
Рязанская область
Самарская область
Саратовская область
Сахалинская область
Свердловская область
Смоленская область
Ставропольский край
Тамбовская область
Тверская область
Томская область
Тульская область
Тюменская область
Ульяновская область
Хабаровский край
Ханты-Мансийский автономный округ
Челябинская область
Чукотский автономный округ
Ямало-Ненецкий автономный округ
Ярославская область
Поделиться ссылкой:
Пособие при рождении ребенка в 2020 году — разовая выплата, предоставляемая одному из родителей. При рождении двух и более детей данное пособие выплачивается на каждого ребенка. Если же ребенок родился мертвым, пособие не положено.
Размер пособия при рождении ребенка
Размер пособия при рождении ребенка с 1 февраля 2020 года (после произведенной индексации на коэффициент 1,03) составляет 18 004 рубля 12 копеек. Если вы работник Крайнего Севера, размер пособия увеличится на районный коэффициент.
Единовременное пособие при рождении ребенка выплачивается либо по месту работы (для работающих получателей), либо по месту жительства органами ФСС (для неработающих, студентов–очников). Если один из супругов работает, а второй нет, пособие выплатят тому, кто работает.
Документы для получения пособия при рождении ребенка
Для получения пособия при рождении ребенка в 2020 году необходимо подать следующие документы:
заявление о назначении пособия
справку о рождении ребенка (детей)
справку с места работы другого родителя о том, что он не получает данное пособие
заверенную выписку из трудовой книжки или иного документа о последнем месте работы (если пособие выплачивают органы соцзащиты)
свидетельство о расторжении брака — при наличии данного факта
Указанные документы нужно подать не позднее шести месяцев со дня рождения ребенка.
В течение десяти дней со дня подачи документов пособие при рождении ребенка должно быть назначено. Выплачивается же оно следующим образом: работодателем — в течение указанных десяти дней, органами соцзащиты — не позднее 26–го числа месяца, следующего за месяцем представления документов на пособие.
Документы по теме «Пособие при рождении ребенка в 2020 году»
- Подборка
- 14 инструкций
Как зарегистрировать рождение ребенка. Как оформить ребенку полис ОМС, СНИЛС и другие документы. Как сделать первые прививки и воспользоваться услугами молочной кухни. Как получить и использовать материнский капитал. Как зарегистрировать ребенка по месту жительства и записать в детский сад. Как получить выплаты для молодой семьи и другие денежные выплаты.
Как прикрепиться к поликлинике. Как проверить, к какой поликлинике вы прикреплены. Как часто можно менять поликлинику
Чем биометрический загранпаспорт отличается от заграничного паспорта старого образца. Как поменять, восстановить или оформить второй загранпаспорт. Как уплатить госпошлину
Какие документы нужны для регистрации рождения ребенка. Как зарегистрировать ребенка, если родители в разводе. Какое имя и фамилию можно дать ребенку
Какие пособия предусмотрены для беременных женщин. Какие документы нужны для оформления выплат беременным
Какие продукты можно получить на молочной кухне. До какого возраста ребенок может получать продукты на молочной кухне. Какие документы нужны, чтобы получать бесплатное питание на молочной кухне
Кто может оформить карту москвича для будущей матери. Как это сделать, какие документы понадобятся и где получить карту
Как оформить полис обязательного медицинского страхования для взрослого и ребенка. Какие документы для этого понадобятся. Что лечат по полису ОМС
Как оформить постоянную регистрацию в Москве. Нужно ли согласие всех собственников для регистрации по месту жительства. Как зарегистрировать ребенка по месту жительства в Москве
Кто имеет приоритетное право на зачисление в детский сад. Как подать электронное заявление. Какие нужны документы, чтобы записать ребенка в детский сад в Москве
Как получить СНИЛС. Как узнать СНИЛС. Как восстановить утраченное страховое пенсионное свидетельство. Как заменить документ со СНИЛС через работодателя при смене фамилии
На что можно потратить материнский капитал. Кто может использовать материнский капитал и когда. Какие документы нужны для использования маткапитала
На какие выплаты можно рассчитывать при рождении ребенка в Москве. Как оформить единовременную выплату при рождении ребенка, пособия по уходу за ребенком, пособие для молодых семей
Какие наборы получают родители новорожденных в роддомах. Что входит в подарочный набор для новорожденного. Можно ли получить набор вещей для новорожденного после выписки, не в роддоме
Москва
Московская область
Санкт-Петербург
Ленинградская область
Алтайский край
Амурская область
Архангельская область
Астраханская область
Белгородская область
Брянская область
Владимирская область
Волгоградская область
Вологодская область
Воронежская область
Еврейская автономная область
Забайкальский край
Ивановская область
Иркутская область
Калининградская область
Калужская область
Камчатский край
Кемеровская область
Кировская область
Костромская область
Краснодарский край
Красноярский край
Курганская область
Курская область
Липецкая область
Магаданская область
Мурманская область
Ненецкий автономный округ
Нижегородская область
Новгородская область
Новосибирская область
Омская область
Оренбургская область
Орловская область
Пензенская область
Пермский край
Приморский край
Псковская область
Республика Адыгея
Республика Алтай
Республика Башкортостан
Республика Бурятия
Республика Дагестан
Республика Ингушетия
Республика Кабардино-Балкария
Республика Калмыкия
Республика Карачаево-Черкессия
Республика Карелия
Республика Коми
Республика Марий Эл
Республика Мордовия
Республика Саха (Якутия)
Республика Северная Осетия (Алания)
Республика Татарстан
Республика Тыва (Тува)
Республика Удмуртия
Республика Хакасия
Республика Чечня
Республика Чувашия
Ростовская область
Рязанская область
Самарская область
Саратовская область
Сахалинская область
Свердловская область
Смоленская область
Ставропольский край
Тамбовская область
Тверская область
Томская область
Тульская область
Тюменская область
Ульяновская область
Хабаровский край
Ханты-Мансийский автономный округ
Челябинская область
Чукотский автономный округ
Ямало-Ненецкий автономный округ
Ярославская область
зачем он нужен и что с ним делать
Женщина в период беременности, во время и после родов имеет право на бесплатную медицинскую помощь в государственных медучреждениях. Чтобы женщина и ребенок получали качественную медпомощь, государство ввело программу родовых сертификатов. По такому сертификату медицинские организации получают выплаты от Фонда социального страхования. При этом сертификат не влияет на то, где женщина будет вести беременность и рожать — клинику для консультаций и роддом она выбирает сама.

Вероника Нецова
получила родовый сертификат
Расскажу в статье, как оформить родовый сертификат и где его можно использовать.
Что такое родовый сертификат
Родовый сертификат — это специальный документ, который позволяет медицинским организациям получать деньги за качественно оказанную медицинскую помощь.


Корешок родового сертификата остается в медицинском учреждении, где женщина его получила, например в женской консультации. Он подтверждает, что сертификат выдали.
Талонов родового сертификата четыре:
- Талон № 1 нужен для оплаты услуг по медицинской помощи того учреждения, в котором стояла на учете и наблюдалась беременная женщина.
- Талон № 2 — для оплаты медицинских услуг родильных домов.
- Талон № 3-1 пойдет на оплату услуг за первые шесть месяцев диспансерного наблюдения ребенка.
- Талон № 3-2 — за вторые шесть месяцев.
Медицинские учреждения собирают талоны родовых сертификатов, передают их в региональное отделение Фонда социального страхования и получают деньги.
Сам родовый сертификат выдается женщине при выписке из роддома. Он подтверждает, что она получила медицинскую помощь во время беременности, родов и послеродовой период. На сертификате указывают данные пациентки, дату рождения ребенка, его рост и вес при рождении.
Родовым сертификатом называют весь документ с талонами и одну из частей сертификата, которая остается у женщины
Чем родовый сертификат отличается от обменной карты и диспансерной книжки
Беременные встают на учет в женскую консультацию или медицинский центр. Там они проходят осмотры и сдают анализы. На каждую женщину медучреждение заводит обменную карту и диспансерную книжку.
Обменную карту выдают на руки беременной. С ней женщина едет рожать и передает ее в роддом при оформлении. В обменной карте врачи смотрят, здорова ли женщина. Если карты нет, ее положат в инфекционное отделение. Диспансерная книжка хранится только в медицинском учреждении.
Родовый сертификат — документ другого назначения. Он ничего не говорит о здоровье беременной женщины и нужен роддому только для того, чтобы получить выплаты из ФСС.


Сумма родового сертификата
В 2020 году медучреждение может получить по родовому сертификату максимум 12 000 Р. Вот за какие услуги ФСС перечисляет деньги медицинским организациям:
- За медицинские услуги — 3000 Р, за услуги правовой, психологической и медико-социальной помощи — 1000 Р. В итоге за каждую женщину поликлиника может получить максимум 4000 Р.
- Помощь во время родов и в послеродовой период — 6000 Р. Эти деньги получает роддом.
- За каждого ребенка, которого поставили на учет до трех месяцев и который проходил профилактические осмотры в первые шесть месяцев с даты постановки на учет, — 1000 Р. Деньги идут детской поликлинике.
- За каждого ребенка, которого осматривали в течение следующих шести месяцев с даты постановки на учет, — 1000 Р.
п. 8 Правил, утв. Постановлением Правительства РФ от 31.12.2010 № 1233
К сожалению, ФСС считает, что услуги были оказаны некачественно, только если у женщины или новорожденного ребенка есть осложнения. В таком случае ФСС оплачивает медуслуги не полностью или не оплачивает вообще.
Если вы считаете, что медицинские услуги вам оказали некачественно, звоните на горячую линию ФСС и пишите жалобу на имя главврача учреждения. В жалобе необходимо сформулировать свои пожелания: например, чтобы врач принес извинения или чтобы ему сделали выговор. На письменную жалобу вам должны ответить в течение 30 дней. Если врач часто хамит, его могут уволить.

Что закон говорит о врачах
Заберите свое у государства!
Как получать вычеты, льготы и пособия, рассказываем в нашей рассылке дважды в неделю
Правила оформления
Когда и где выдают. Родовый сертификат можно получить с 30-й недели при одноплодной беременности и с 28-й недели — при многоплодной. Его выдают в государственном или муниципальном медучреждении: в женской консультации или роддоме. Причем получить его можно в любой момент до того, как ребенку исполнится три месяца. Если женщина потеряет сертификат, ей нужно обратиться в выдавшее сертификат учреждение, чтобы получить дубликат, например в консультацию или роддом.
пп. 6, 7, 12 приложения к Приказу Минздрава РФ от 16.07.2014 № 370н
Женщина, которая ведет беременность платно, может получить родовый сертификат в женской консультации по месту жительства. Он ей пригодится, если она планирует рожать бесплатно в государственном учреждении или водить ребенка в государственную поликлинику. Если женщина не получит сертификат и поедет в государственный роддом без него — ничего страшного: роддом оформит сертификат самостоятельно.
Еще сертификат может получить женщина, усыновившая ребенка возрастом до трех месяцев, — мужчине его не выдадут. Женщина может получить сертификат в детской поликлинике при постановке ребенка на учет, если до момента постановки на учет ему не исполнилось трех месяцев.
п. 7 приложения к Приказу Минздрава РФ от 16.07.2014 № 370н
Какие нужны документы. Для получения сертификата женщина представляет своему врачу следующие документы:
- Паспорт или другой документ, удостоверяющий личность: удостоверение личности офицера или военный билет — для военнослужащих, свидетельство о рождении — для девочек младше 14 лет.
- Полис ОМС.
- СНИЛС.
п. 5 порядка, утв. Приказом Минздравсоцразвития России от 15.01.2007 № 33
Если у женщины нет полиса, СНИЛС или регистрации по месту жительства, то ей все равно выдадут сертификат. В сертификате отметят в специальных полях, почему этих документов или регистрации не было. Сертификат не дадут иностранцам без разрешения на временное проживание или вида на жительство в РФ.
п. 6 приложения к Приказу Минздрава РФ от 16.07.2014 № 370н
Кто и как использует сертификат
Воспользоваться родовым сертификатом могут только государственные медучреждения, которые оказывают медицинскую помощь по полису ОМС.
Работает это так. Территориальный орган Фонда социального страхования Российской Федерации и медицинская организация заключают специальный договор. Затем медорганизация оказывает женщине медицинские услуги, получает от нее талон родового сертификата и отправляет его в территориальный орган ФСС. После этого получает вознаграждение за качественно оказанные медуслуги.

Сколько стоит родить в Москве
При этом медорганизация должна иметь специальную лицензию на медицинскую деятельность по следующим направлениям:
- Акушерство и гинекология — чтобы получить оплату за услуги по медицинской помощи женщинам в период беременности.
- Акушерство и гинекология, педиатрия или неонатология — чтобы получить оплату услуг по медицинской помощи женщинам и новорожденным в период родов и послеродовой период.
- Педиатрия, неврология, офтальмология, детская хирургия, оториноларингология, детская стоматология, травматология и ортопедия, лабораторная диагностика, функциональная диагностика, ультразвуковая диагностика — чтобы получить оплату за профилактические медицинские осмотры ребенка в первый год жизни. Если какой-то лицензии у медицинской организации нет, она направляет пациентов в клинику, у которой лицензия есть.
Этапы заполнения и получения талонов. Вот где заполняют талоны в родовом сертификате:
- Пункты 1—5 родового сертификата, его корешок, талон № 1 и пункты 1—8 талона № 2 заполняет врач медучреждения, где женщина получила сертификат, чаще всего — женской консультации. Корешок и талон № 1 остаются там.
- Пункты 9—11 талона № 2 заполняет медицинский работник роддома. Он остается в роддоме, в котором рожала женщина. Там же заполняют пункты 6—10 родового сертификата.
- Родовый сертификат и талоны № 3-1 и № 3-2 выдаются женщине при выписке из роддома.
Инструкция по заполнению родового сертификата
После талоны № 3 нужно передать в детское лечебное учреждение, где будут осматривать новорожденного. Талон № 3-1 пойдет на оплату услуг за первые шесть месяцев диспансерного наблюдения ребенка, талон № 3-2 — за вторые шесть месяцев.

Сколько стоит ребенок в первый год
Руководитель учреждения подписывает запись в каждом талоне и ставит печать.
Куда отдавать сертификат после родов. Талоны № 3-1 и № 3-2 родового сертификата нужно отдать в детскую поликлинику при постановке ребенка на учет. Сам родовый сертификат остается у женщины, отдавать его никуда не нужно.

Ограничения при использовании
Родовый сертификат нельзя обналичить. Все деньги по этому сертификату пойдут медицинским учреждениям: поликлинике, роддому, женской консультации.
Женская консультация не получит деньги, если женщина наблюдалась там менее 12 недель.
Роддому откажут в выплате в следующих случаях:
- Если мать или ребенок умрут, пока находятся там. При этом роддом получит деньги, если родилась двойня и погиб только один ребенок.
- Если ребенок родился вне роддома — например, в автомобиле скорой помощи, в фельдшерско-акушерском пункте и т. д.
Детские поликлиники не получат оплату по сертификатам в следующих случаях:
- Ребенка поставили на учет после того, как ему исполнилось 3 месяца.
- Ребенок умер в первый год жизни.
- Детская поликлиника вовремя не начала или не закончила медосмотры ребенка.
- Детская поликлиника поздно заполнила талоны и сдала их в ФСС.

Пособия на ребенка в 2020 году
Запомнить
- Родовый сертификат нужен государственным медицинским учреждениям для получения выплат из ФСС. Обналичить и забрать деньги себе не получится.
- Если вы наблюдаетесь платно, планируете рожать по контракту и записать ребенка в частную клинику, родовый сертификат вам не нужен. Но если передумаете и поедете в роддом за бесплатной медициной — езжайте спокойно даже без сертификата на руках: роддом оформит его самостоятельно.
- Если считаете, что медуслуги были оказаны некачественно и женская консультация, роддом или детская поликлиника не достойны выплат из ФСС, позвоните на горячую линию ФСС и расскажите о нарушениях. Скорее всего, выплаты медучреждение получит, но при этом может попасть под проверку.
После появления в семье малыша, без сомнений, молодой семье потребуется дополнительное содействие и поддержка со стороны государства. Это необходимо поскольку уход за ребенком подразумевает дополнительные затраты из семейного бюджета и частичное сокращение возможности зарабатывания для одного из родителей. Со стороны государства на законодательном уровне определено конкретное количество обязательных послеродовых выплат и пособий.
Как начисляются дородовые выплаты, как рассчитать
Все будущие мамы задаются вопросом о том, какова будет сумма декретного перечисления?
Законодательством РФ с целью содействия молодым семьям определены конкретные выплаты.
- Оплата больничного листа за время последних недель беременности и родов.
- Пособие по уходу за ребенком до достижения им полуторогодовалого возраста.
Время пребывания на больничном при появлении 1-ого ребенка – 140 суток, 70 суток до момента родов и 70 суток после этого.
При появлении в семье 2-х детей и более детей, маме гарантирован отпуск в количестве 194 дней, 84 дня до момента родов и 110 после.
На видео-дородовые и послеродовые выплаты:
До момента, пока ребенок не достигнет возраста 1,5 лет, одному из родителей полагаются перечисления денежного характера на ежемесячной основе.
Кто может рассчитывать на получение этого пособия?
- Беременные женщины, которые имеют постоянное место трудоустройства.
- Женщины, которые официально зарегистрированы в качестве ИП.
- Женщины, которые не работают, но состоят на учете в службе занятости соответствующего района по поводу утраты работы в связи с сокращением штата в организации.
- Женщины, которые являются учащимися дневной очной формы обучения.
Важно – декретное пособие не полагается неработающим беременным девушкам, которые не стоят на учете.
Узнать всё про сумму выплат матерям одиночкам, можно прочитав данную статью.
Каков состав выплат социального характера существует и какова его статистика указано в данной статье.
Каков порядок выплат существует при сокращении работника, указано здесь: https://ruleconsult.ru/grazhdanskoe/trudovoe/vyplaty-pri-sokrashhenii-rabotnika.html
Как получить
Для оформления отпуска по беременности, потребуется подготовить пакет бумаг:
- заявление;
- больничный лист.
Женщинам, проходящим обучение, следует обратиться с этой документацией в деканат своего учебного заведения. Трудоустроенным женщинам – обратиться по месту своей работы. Неработающим беременным необходимо подавать документы в социальную службу.
Чтобы оформить оплачиваемый отпуск по уходу за малышом до 1,5 лет потребуется представить:
- заявление;
- справку из родильного дома.
Какие бывают субсидии матерям одиночкам на оплату коммунальных услуг, можно узнать прочитав статью.
Как рассчитывается сумма
Трудоустроенным беременным женщинам данную разновидность поддержки будет перечислять организация, в которой она работает. В данном случае расчет выплат входит в обязанности бухгалтера предприятия. Безработным женщинам определять размер выплаты будет социальная служба.
Если женщина осуществляла свою трудовую деятельность в одной организации больше 2-х лет, то сумма декретных выплат будет рассчитываться, исходя из среднего уровня ее заработной платы.
Женщинам, оформленным в качестве ИП, можно рассчитывать на выплаты, при условии отчисления взносов на социальное страхование. Сумма пособия в этом случае будет зависеть от уровня произведенных перечислений в ФСС.
Для учащихся женщин сумма декретных выплат будет рассчитана, исходя из размера стипендии.
Важно – при расчете не будет иметь значения основа обучения – коммерческая или бюджетная.
Послеродовые: сколько выплачивают
Будущие родители, которые ожидают появление ребенка в семье, могут рассчитывать на определенные выплаты.
- Выплата по беременности и родам, которая перечисляется один раз.
- Пособие по уходу за ребенком до 1,5 лет, которое выплачивается на ежемесячной основе.
- Выплаты из региональной казны.
Финансовое довольствие в связи с родами будет начислено вне зависимости от того, когда будущая мама встала на учет в женскую консультацию.
Как рассчитывается размер предродового пособия
Как начисляются? Размер единовременного пособия определен законодательством РФ. В 2016 году произошла индексация этого вида денежной поддержки со стороны государства и сейчас составляет почти 15 383 рубля.
Пособие полагается к выплате на каждого родившегося ребенка не зависимо от того, какой он по счету.
На получение послеродовых выплат имеют право рассчитывать не только трудоустроенные, но и безработные женщины на территории России.
На видео-как получить послеродовые выплаты:
Как получить родовые выплаты безработной молодой маме
Для получения выплаты одноразового характера для трудоустроенных родителей, потребуется представить в кадровую службу организации, в которой они трудятся, определенный пакет бумаг.
- Заявление, составленное на имя руководителя предприятия о назначении пособия.
- Свидетельство о рождении ребенка из отдела ЗАГС.
- Паспорт обоих родителей.
- Справку, которая получена 2-ым родителем по месту его трудоустройства подтверждающая, что это пособие ему не было выплачено.
Важно – все предоставленные бумаги помимо заявления, необходимо дополнить копиями оригиналов.
Перечисление денежных средств должно быть произведено не позднее десяти дней с момента подачи комплекта документов в бухгалтерию организации, где трудится один из родителей.
Возможно вам так же будет интересно узнать про существующий список льготных профессий для досрочной пенсии.
Прочитав данную статью можно узнать, какие льготы дает ветеран труда.
Какие льготы пенсионерам предоставляются при уплате налога на имущество физических лиц, подробно рассказывается здесь.
Каким образом происходит освобождение от налога на недвижимость пенсионеров, подробно рассказывается в данной статье.
Для тех кто хочет узнать, какие документы подтверждают право на налоговую льготу, стоит прочесть данную статью.
Актуально
Законодательная база для расчета декретных – федеральный закон РФ, где прописан порядок начислений, включая максимально и минимально возможную сумму.
Во время определения размера пособия по уходу за малышом до полутора лет, в расчет принимаются следующие моменты.
- Трудовой стаж. Если стаж меньше шести месяцев – довольствие будет перечислено в минимальном размере.
- Если стаж в период трудоустройства мамы прерывался больше, чем на 2 года, то она имеет право требовать при исчислении пособия основание для использования иного временного периода. Это удобно лишь тогда, когда средняя зарплата расчетного периода была больше минимального уровня заработка на момент предоставления заявления.
Пособия при появлении в семье ребенка могут носить одноразовый или ежемесячный характер. Это означает, что определенные выплаты можно получить лишь один раз, а иные – будут выплачиваться до момента достижения ребенком определенного возраста.
Немаловажный момент – денежное довольствие федерального значения распространяется на всех граждан РФ. Однако есть и выплаты регионального характера. На них могут рассчитывать жители конкретных субъектов России. Размер выплаты будет напрямую зависеть от региона.
Единовременное пособие при рождении ребенка
Заявитель имеет право подать жалобу на решения и (или) действия (бездействие) уполномоченного органа, его должностных лиц, подразделения Санкт‑Петербургского государственного казенного учреждения «Многофункциональный центр предоставления государственных и муниципальных услуг» (далее — МФЦ), работника МФЦ, а также организаций, осуществляющих функции по предоставлению государственных услуг, их работников при предоставлении государственной услуги (далее — жалоба), а также в досудебном (внесудебном) порядке, в том числе в следующих случаях:
- нарушение срока регистрации заявления;
- нарушение срока предоставления государственной услуги;
- требование у заявителя документов, не предусмотренных нормативными правовыми актами Российской Федерации для предоставления государственной услуги;
- отказ в предоставлении государственной услуги, если основания для отказа не предусмотрены федеральными законами и принятыми в соответствии с ними иными нормативными правовыми актами Российской Федерации;
- отказ в приеме документов, представление которых предусмотрено нормативными правовыми актами Российской Федерации для предоставления государственной услуги;
- затребование с заявителя при предоставлении государственной услуги платы, не предусмотренной нормативными правовыми актами Российской Федерации;
- отказ уполномоченного органа, предоставляющего государственную услугу, его должностных лиц, МФЦ, его работника, организации, осуществляющей функции по предоставлению государственных услуг, ее работника, в исправлении допущенных ими опечаток и ошибок в выданных в результате предоставления государственной услуги документах либо нарушение установленного срока таких исправлений;
- нарушение срока или порядка выдачи документов по результатам предоставления государственной услуги;
- приостановление предоставления государственной услуги, если основания приостановления не предусмотрены федеральными законами и принятыми в соответствии с ними иными нормативными правовыми актами Российской Федерации, законами и иными нормативными правовыми актами субъектов Российской Федерации, муниципальными правовыми актами.
Предметом жалобы является нарушение прав и законных интересов заявителя, противоправные решения и (или) действия (бездействие) уполномоченного органа, его должностных лиц, МФЦ, его работников, а также организаций, осуществляющих функции по предоставлению государственных услуг, их работников при предоставлении государственной услуги, нарушение положений административного регламента и иных нормативных правовых актов, устанавливающих требования к предоставлению государственной услуги.
Жалоба подается в письменной форме на бумажном носителе, в электронной форме в уполномоченный орган, в МФЦ либо в соответствующий орган государственной власти (орган местного самоуправления) публично‑правового образования, являющийся учредителем МФЦ (далее — учредитель МФЦ), а также в организации, осуществляющие функции по предоставлению государственных услуг.
Жалобы на решения и действия (бездействие) руководителя уполномоченного органа рассматриваются непосредственно руководителем уполномоченного органа. Жалобы на решения и действия (бездействие) МФЦ подаются учредителю МФЦ или должностному лицу, уполномоченному на рассмотрение жалоб нормативным правовым актом субъекта Российской Федерации. Жалобы на решения и действия (бездействие) работников организаций, осуществляющих функции по предоставлению государственных услуг, подаются руководителям этих организаций.
Жалоба должна содержать:- наименование уполномоченного органа, предоставляющего государственную услугу, МФЦ, организации, осуществляющей функции по предоставлению государственных услуг, фамилию, имя, отчество (при наличии) их должностных лиц, предоставляющих государственную услугу, и (или) их руководителей, решения и действия (бездействие) которых обжалуются;
- фамилию, имя, отчество (при наличии) заявителя, сведения о месте жительства, а также номер (номера) контактного телефона, адрес (адреса) электронной почты (при наличии) и почтовый адрес, по которым должен быть направлен ответ заявителю;
- сведения об обжалуемых решениях и (или) действиях (бездействии) уполномоченного органа, должностного лица уполномоченного органа, МФЦ, его руководителя и (или) работника, организаций, осуществляющих функции по предоставлению государственных услуг, их руководителей и (или) работников;
- доводы, на основании которых заявитель не согласен с решениями и (или) действиями (бездействием) уполномоченного органа, должностного лица уполномоченного органа, МФЦ, его руководителя и (или) работника, организаций, осуществляющих функции по предоставлению государственных услуг, их руководителей и (или) работников.
Заявителем представляются документы (при наличии), подтверждающие его доводы, либо их копии.
МФЦ обеспечивает передачу жалобы в уполномоченный орган в порядке и сроки, которые установлены соглашением о взаимодействии, заключенным между МФЦ и уполномоченным органом, предоставляющим государственную услугу, но не позднее рабочего дня, следующего за днем поступления жалобы.
Прием жалоб в письменной форме осуществляется уполномоченным органом в месте предоставления государственной услуги (в месте, где заявитель обращался за получением государственной услуги, нарушение порядка предоставления которой обжалуется, либо в месте, где заявителем получен результат указанной государственной услуги либо отказ в предоставлении государственной услуги).
Время приема жалоб должно совпадать со временем предоставления государственных услуг.
В случае подачи жалобы при личном приеме заявитель предъявляет документ, удостоверяющий личность, в случае если жалоба подается через представителя заявителя, также представляется документ, подтверждающий полномочия представителя на осуществление действий от имени заявителя. В случае если жалоба направляется посредством почтовой связи, направляется заверенная копия документа, подтверждающая полномочия представителя.
В электронном виде жалоба может быть подана заявителем посредством сайта уполномоченного органа, Единого портала, портала услуг.
При подаче жалобы в электронном виде документы, указанные в пункте 106 настоящего Административного регламента, могут быть представлены в форме электронного документа, подписанного электронной подписью, вид которой предусмотрен законодательством Российской Федерации. При этом документа, удостоверяющего личность заявителя, не требуется.
В уполномоченном органе определяются уполномоченные на рассмотрение жалоб должностные лица, которые обеспечивают:
- прием и рассмотрение жалоб;
- направление жалоб в уполномоченный на их рассмотрение орган.
Жалобы на решения и (или) действия (бездействие) должностного лица уполномоченного органа рассматриваются руководителем уполномоченного органа или должностным лицом уполномоченного органа, уполномоченным на рассмотрение жалоб. Жалобы на решения и (или) действия (бездействие) руководителя уполномоченного органа рассматриваются должностным лицом органа исполнительной власти субъекта Российской Федерации, уполномоченным на рассмотрение жалоб.
В случае, если жалоба подана заявителем в орган, в компетенцию которого не входит принятие решения по жалобе, в течение 3 рабочих дней со дня ее регистрации указанный орган направляет жалобу в уполномоченный на ее рассмотрение орган и в письменной форме информирует заявителя о перенаправлении жалобы.
Уполномоченный орган обеспечивает:
- оснащение мест приема жалоб;
- информирование заявителей о порядке обжалования решений и (или) действий (бездействия) уполномоченного органа, должностных лиц уполномоченного органа посредством размещения информации на стендах в местах предоставления государственной услуги, на сайте уполномоченного органа, на Едином портале, портале услуг;
- консультирование заявителей о порядке обжалования решений и (или) действий (бездействия) уполномоченного органа, должностных лиц уполномоченного органа при личном приеме, в том числе по телефону, с использованием сайта уполномоченного органа;
- заключение соглашений о взаимодействии между МФЦ и уполномоченным органом в части осуществления МФЦ приема жалоб и выдачи заявителю результатов рассмотрения жалоб;
- формирование и представление ежеквартально в Федеральную службу по труду и занятости отчетности о полученных и рассмотренных жалобах (в том числе о количестве удовлетворенных и неудовлетворенных жалоб).
Жалоба, поступившая в уполномоченный орган, МФЦ, учредителю МФЦ, в организации, осуществляющие функции по предоставлению государственных услуг, подлежит регистрации не позднее одного рабочего дня, следующего за днем ее поступления.
Жалоба подлежит рассмотрению в течение 15 рабочих дней со дня ее регистрации, а в случае обжалования отказа уполномоченного органа, МФЦ, организаций, осуществляющих функции по предоставлению государственных услуг, в приеме документов у заявителя либо в исправлении допущенных опечаток и ошибок или в случае обжалования нарушения установленного срока таких исправлений — в течение 5 рабочих дней со дня ее регистрации.
Основания для приостановления рассмотрения жалобы отсутствуют.
По результатам рассмотрения жалобы принимается одно из следующих решений:
- удовлетворить жалобу, в том числе в форме отмены принятого решения, исправления допущенных опечаток и ошибок в выданных в результате предоставления государственной услуги документах, возврата заявителю денежных средств, взимание которых не предусмотрено нормативными правовыми актами Российской Федерации, нормативными правовыми актами субъектов Российской Федерации, муниципальными правовыми актами;
- отказать в удовлетворении жалобы.
При удовлетворении жалобы уполномоченный орган, МФЦ, организации, осуществляющие функции по предоставлению государственных услуг, принимают исчерпывающие меры по устранению выявленных нарушений, в том числе по выдаче заявителю результата государственной услуги не позднее 5 рабочих дней со дня принятия соответствующего решения, если иное не установлено законодательством Российской Федерации.
В удовлетворении жалобы может быть отказано в следующих случаях:
- наличие вступившего в законную силу решения суда по жалобе о том же предмете и по тем же основаниям;
- подача жалобы лицом, полномочия которого не подтверждены в порядке, установленном законодательством Российской Федерации;
- наличие решения по жалобе, принятого ранее в соответствии с требованиями Правил подачи и рассмотрения жалоб на решения и действия (бездействие) федеральных органов исполнительной власти и их должностных лиц, федеральных государственных служащих, должностных лиц государственных внебюджетных фондов Российской Федерации, а также государственных корпораций, которые в соответствии с федеральным законом наделены полномочиями по предоставлению государственных услуг в установленной сфере деятельности, и их должностных лиц, утвержденных постановлением Правительства Российской Федерации от 16 августа 2012 г. № 840, в отношении того же заявителя и по тому же предмету жалобы.
Жалоба может быть оставлена без ответа в следующих случаях:
- наличие в жалобе нецензурных либо оскорбительных выражений, угроз жизни, здоровью и имуществу должностного лица, а также членов его семьи;
- отсутствие возможности прочитать какую‑либо часть текста жалобы, фамилию, имя, отчество (при наличии) и (или) почтовый адрес заявителя, указанные в жалобе.
В ответе по результатам рассмотрения жалобы указываются:
- наименование органа, предоставляющего государственную услугу, рассмотревшего жалобу, должность, фамилия, имя, отчество (при наличии) должностного лица, принявшего решение по жалобе;
- номер, дата, место принятия решения, включая сведения о должностном лице, решения и (или) действия (бездействие) которого обжалуется;
- фамилия, имя, отчество (при наличии) заявителя;
- основания для принятия решения по жалобе;
- принятое по жалобе решение;
- в случае, если жалоба признана обоснованной, — сроки устранения выявленных нарушений, в том числе срок предоставления результата государственной услуги;
- сведения о порядке обжалования принятого по жалобе решения.
В случае установления в ходе или по результатам рассмотрения жалобы признаков состава административного правонарушения или преступления должностное лицо уполномоченного органа, работник МФЦ, организации, осуществляющей функции по предоставлению государственных услуг, уполномоченные на рассмотрение жалоб, незамедлительно направляют имеющиеся материалы в органы прокуратуры.
Мотивированный ответ по результатам рассмотрения жалобы подписывается уполномоченным на рассмотрение жалобы должностным лицом и направляется заявителю в письменной форме или по желанию заявителя в форме электронного документа, подписанного электронной подписью уполномоченного на рассмотрение жалобы должностного лица, вид которой установлен законодательством Российской Федерации, не позднее дня, следующего за днем принятия решения по результатам рассмотрения жалобы.
Заявитель вправе обжаловать решение, принятое по жалобе, направив его в Федеральную службу по труду и занятости.
Заявитель имеет право на получение исчерпывающей информации и документов, необходимых для обоснования и рассмотрения жалобы.
Информация о порядке подачи и рассмотрения жалобы размещается на информационных стендах в местах предоставления государственной услуги, на сайте уполномоченного органа, на Едином портале, портале услуг, а также может быть сообщена заявителю в устной и (или) в письменной форме.
Для получения информации о должностных лицах исполнительных органов государственной власти Санкт‑Петербурга, ответственных за регистрацию и рассмотрение жалоб на нарушение порядка предоставления государственной услуги, перейдите по ссылке.
- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Загрузка…
- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру
Загрузка…
,Swift Generics Tutorial: Начало работы
Примечание об обновлении : Майкл Кац обновил это руководство для Swift 5. Микаэль Конутган написал оригинал, а Джемма Барлоу обновила для Swift 3.
Общее программирование — это способ написания функций и типов данных с минимальными допущениями относительно типа используемых данных. Универсальные средства Swift создают код, который не определяет конкретные типы данных, что позволяет создавать элегантные абстракции, которые производят более чистый код с меньшим количеством ошибок.Это позволяет вам написать функцию один раз и использовать ее для разных типов.
В Swift вы найдете непатентованные дженерики, что делает их понимание необходимым для полного владения языком. Примером универсального, который вы уже встретили в Swift, является Дополнительный тип
. Вы можете иметь необязательный тип данных любого типа, даже те, которые вы создаете сами. Другими словами, необязательный тип данных является общим для типа значения, которое он может содержать.
В этом уроке вы поэкспериментируете на игровой площадке Swift, чтобы узнать:
- Что такое дженерики?
- Чем они полезны.
- Как написать универсальные функции и структуры данных.
- Как использовать ограничения типа.
- Как расширить универсальные типы.
Начало работы
Начните с создания новой игровой площадки. В Xcode, перейдите к File ▸ New ▸ Playground… . Выберите macos ▸ Пустой шаблон .Нажмите Next и назовите детскую площадку Generics . Наконец, нажмите Создать !
Как один из немногих программистов, живущих в далеком королевстве, вы были вызваны в королевский замок, чтобы помочь королеве в деле, имеющем огромное значение. Она потеряла счет того, сколько у нее королевских предметов, и ей нужна помощь в ее расчетах.
Она просит написать функцию, которая добавляет два целых числа. Добавьте на свою вновь созданную игровую площадку следующее:
func addInts (x: Int, y: Int) -> Int {
вернуть х + у
}
addInts (x: y :)
принимает два значения Int
и возвращает их сумму.Вы можете попробовать, добавив следующий код на игровую площадку:
let intSum = addInts (x: 1, y: 2)
Это простой пример, демонстрирующий безопасность типов Swift. Вы можете вызвать эту функцию с двумя целыми числами, но не с любым другим типом.
Королева довольна и немедленно просит написать еще одну функцию добавления
, чтобы подсчитать ее состояние - на этот раз добавив двойных значений
. Создайте вторую функцию addDoubles (x: y :)
:
func addDoubles (x: Double, y: Double) -> Double {
вернуть х + у
}
let doubleSum = addDoubles (x: 1.0, у: 2,0)
Сигнатуры функций addInts
и addDoubles
различны, но функции тел идентичны. Вы не только имеете две функции, но и код внутри них повторяется. Обобщения могут быть использованы для сведения этих двух функций к одной и удаления избыточного кода.
Сначала, однако, вы рассмотрите несколько других распространенных случаев общего программирования в повседневной жизни Swift.
Другие примеры Swift Generics
Возможно, вы не поняли, но некоторые из наиболее распространенных структур, которые вы используете, такие как массивы , словари , дополнительные и результаты , являются универсальными типами!
Массивы
Добавьте следующее на игровую площадку:
пусть числа = [1, 2, 3]
let firstNumber = numbers [0]
Здесь вы создаете простой массив из трех чисел, а затем берете первое число из этого массива.
Теперь Опционально нажмите , сначала на номеров
, а затем на сначалаNumber
. Что ты видишь?
Поскольку Swift имеет логический тип , вам не нужно явно определять типы ваших констант, но они оба имеют точный тип. номеров
- это [Int]
- то есть массив целых чисел - и firstNumber
- это Int
.
Тип Swift Array
- это универсальный тип .Универсальные типы имеют по крайней мере один параметр типа , заполнитель для еще не указанного другого типа. Вам нужно указать этот другой тип, чтобы специализировал универсальный тип и фактически создавал его экземпляр.
Например, параметр типа Массив
определяет, что находится в массиве. Ваш массив специализирован, поэтому он может содержать только Int
значений. Это поддерживает безопасность Swift . Когда вы удаляете что-либо из этого массива, Swift - и, что более важно, вы - знаете, что это должно быть Int
.
Вы можете лучше увидеть общий характер массива
, добавив немного более длинную версию того же кода на игровую площадку:
var numbersAgain: Array = []
numbersAgain.append (1)
numbersAgain.append (2)
numbersAgain.append (3)
let firstNumberAgain = numbersAgain [0]
Проверьте типы с номерами
и firstNumberAgain
, нажав на них Option; типы будут точно такими же, как и предыдущие значения.Здесь вы указываете тип чисел снова
, используя явный общий синтаксис, помещая Int
в угловые скобки после Array
. Вы указали Int
в качестве явного аргумента типа для параметра типа.
Попробуйте добавить в массив что-то еще, например String
:
numbersAgain.append («Приветствую тебя, Лорд Фаркуаад»)
Вы получите сообщение об ошибке: что-то вроде: Невозможно преобразовать значение типа «String» в ожидаемый тип аргумента «Int»
.Компилятор говорит вам, что вы не можете добавить строку в массив целых чисел. В качестве метода для универсального типа Array
, и добавление
представляет собой так называемый универсальный метод . Поскольку этот экземпляр массива имеет массив специального типа
, его метод добавления теперь также специализирован для добавления (_ newElement: Int)
. Это не позволит вам добавить что-то неправильного типа.
Удалить строку, вызвавшую ошибку. Далее вы увидите еще один пример обобщений в стандартной библиотеке.
Словари
Словари также являются универсальными типами и дают в результате типизированные структуры данных.
Создайте следующий словарь волшебных королевств в конце своей игровой площадки, а затем найдите код страны для Freedonia:
let countryCodes = ["Arendelle": "AR", "Genovia": "GN", "Freedonia": "FD"]
let countryCode = countryCodes ["Freedonia"]
Проверьте типы обоих объявлений. Вы увидите, что countryCodes
- это словарь из ключей String
и значений String
- в этом словаре больше ничего не может быть.Формальный универсальный тип Словарь
.
Опционально
В приведенном выше примере обратите внимание, что тип countryCode
равен String?
На самом деле это всего лишь сокращение от до
.
Если < и > выглядят знакомо, это потому, что даже Дополнительный
является универсальным типом. Дженерики повсюду!
Здесь компилятор обеспечивает доступ к словарю только со строковыми ключами и всегда возвращает строковые значения.Необязательный тип используется для представления countryCode
, потому что может не быть значения, соответствующего этому ключу. Например, если вы попытаетесь найти «Изумрудный город», значение countryCode будет равно , а не
, поскольку его нет в вашем словаре магических королевств.
Добавьте следующее на игровую площадку, чтобы увидеть полный явный синтаксис для создания необязательной строки:
let optionName = Необязательный .некоторые ("Принцесса Моана")
если пусть name = необязательное имя {}
Проверьте тип , имя
, которое вы увидите как String
.
Необязательное связывание , то есть конструкция if-let
, является универсальным преобразованием сортов. Требуется общее значение типа T?
и дает вам общее значение типа T
. Это означает, что вы можете использовать , если разрешить
с любого типа бетона .
Время Т!
Результаты
Результат
- новый тип в Swift 5.Как Необязательный
, это общее перечисление с двумя падежами. Вместо чего-то или ничего, результатом является либо , успех или , отказ . Каждый случай имеет свой собственный родовой тип, успех имеет значение, а ошибка Ошибка
.
Рассмотрим этот случай, когда королевский маг вербует вас, чтобы разыграть несколько заклинаний. Известные заклинания генерируют символ, но неизвестные заклинания терпят неудачу. Функция будет выглядеть примерно так:
enum MagicError: Error {
case spellFailure
}
приведение к фунту (_ spell: String) -> Result {
переключить заклинание {
чехол "цветы":
возвращение .успех ( "💐")
Корпус "Звезды":
вернуть .success ("✨")
дефолт:
вернуть .failure (.spellFailure)
}
}
Результат
позволяет писать функции, которые возвращают значение или ошибку, не используя try
синтаксис. В качестве дополнительного бонуса, общая спецификация случая с ошибкой означает, что вам не нужно проверять тип, как это было бы с блоком catch
. Если есть ошибка, вы можете быть уверены, что будет MagicError
в значении, связанном с .сбой дела.
Попробуйте несколько заклинаний, чтобы увидеть Результат
в действии:
let result1 = cast ("flowers") // .success ("💐")
let result2 = cast ("avada kedavra") // .failure (.spellFailure)
Понимая основы обобщенных типов, вы можете научиться писать собственные обобщенные структуры данных и функции.
Написание общей структуры данных
Очередь - это структура данных, похожая на список или стек, но к которой вы можете добавлять только новые значения до конца ( ставить в очередь их) и принимать только значения с фронта ( из очереди их) ,Эта концепция может быть знакома, если вы когда-либо использовали OperationQueue
- возможно, при выполнении сетевых запросов.
Королева, довольная вашими усилиями ранее в этом уроке, теперь хотела бы, чтобы вы написали функциональность, которая поможет отслеживать королевских предметов, ожидающих своей очереди, чтобы поговорить с ней.
Добавьте следующую декларацию struct
в конец вашей игровой площадки:
struct Queue {
}
Очередь
- это универсальный тип с аргументом типа , Элемент
, в его пункте универсального аргумента .Другой способ сказать, что Queue
является общим для типа Элемент
. Например, Queue
и Queue
станут собственными конкретными типами во время выполнения, которые могут ставить в очередь и удалять только строки и целые числа соответственно.
Добавьте следующее свойство в очередь:
приватные элементы var: [Element] = []
Вы будете использовать этот массив для хранения элементов, которые вы инициализируете как пустой массив.Обратите внимание, что вы можете использовать Элемент
, как если бы он был реальным типом, даже если он будет заполнен позже. Вы помечаете его как частный
, потому что вы не хотите, чтобы потребители Очередь
имели доступ к элементам
. Вы хотите заставить их использовать методы для доступа к резервному хранилищу.
Наконец, реализуем два основных метода очереди:
мутирование очереди функций (newElement: Element) {
elements.append (newElement)
}
мутирующая функция () -> Элемент? {
охранник! элементы.isEmpty else {return nil}
вернуть elements.remove (в: 0)
}
Опять же, параметр типа Элемент
доступен везде в теле struct
, включая внутренние методы. Создание универсального типа похоже на то, что каждый из его методов неявно является универсальным для одного и того же типа. Вы внедрили типобезопасную общую структуру данных, как в стандартной библиотеке.
Поэкспериментируйте с новой структурой данных в нижней части игровой площадки, ставя в очередь ожидающих субъектов, добавляя их королевский идентификатор в очередь:
var q = Queue ()
кв.enqueue (newElement: 4)
q.enqueue (newElement: 2)
q.dequeue ()
q.dequeue ()
q.dequeue ()
q.dequeue ()
Получите удовольствие, преднамеренно совершив столько ошибок, сколько сможете, чтобы вызвать различные сообщения об ошибках, связанных с универсальными шаблонами - например, добавьте строку в свою очередь. Чем больше вы знаете об этих ошибках сейчас, тем легче будет распознать и устранить их в более сложных проектах.
Написание общей функции
У королевы есть много данных для обработки, и следующий фрагмент кода, который она просит вас написать, возьмет словарь ключей и значений и преобразует его в список.
Добавьте следующую функцию в нижней части игровой площадки:
Функциональные пары (из словаря: [Key: Value]) -> [(Key, Value)] {
возвращать массив (словарь)
}
Внимательно посмотрите на объявление функции, список параметров и тип возвращаемого значения.
Функция является общей для двух типов, которые вы назвали Ключ
и Значение
. Единственным параметром является словарь с парой ключ-значение типа Ключ
и Значение
.Возвращаемое значение представляет собой массив кортежей формы - как вы уже догадались - (ключ, значение)
.
Вы можете использовать пар (из :)
в любом допустимом словаре, и это будет работать, благодаря генерикам:
let somePairs = пары (из: ["минимум": 199, "максимум": 299])
// результат - [(«максимум», 299), («минимум», 199)]
let morePairs = пары (из: [1: «Swift», 2: «Generics», 3: «Rule»])
// результатом является [(1, "Swift"), (2, "Generics"), (3, "Rule")]
Конечно, поскольку вы не можете управлять порядком, в котором элементы словаря попадают в массив, вы можете увидеть порядок значений кортежей на игровой площадке, например, «Общие», «Правило», «Свифт» и так далее. они вроде как делают! :]
Во время выполнения все возможные Ключ
и Значение
будут действовать как отдельная функция, заполняя конкретные типы в объявлении функции и теле.При первом вызове пар (из :)
возвращается массив из (String, Int)
кортежей. Второй вызов использует перевернутый порядок типов в кортеже и возвращает массив (Int, String)
кортежей.
Вы создали одну функцию, которая может возвращать разные типы с разными вызовами. Вы можете видеть, как хранение вашей логики в одном месте может упростить ваш код. Вместо того, чтобы нуждаться в двух разных функциях, вы обрабатывали оба вызова одной функцией.
Теперь, когда вы знаете основы создания универсальных типов и функций и работы с ними, пришло время перейти к некоторым более сложным функциям.Вы уже видели, насколько полезны универсальные шаблоны для ограничения вещей по типам, но вы можете добавить дополнительные ограничения, а также расширить свои универсальные типы, чтобы сделать их еще более полезными.
Ограничение родового типа
Желая проанализировать возраст небольшой группы своих самых верных подданных, королева просит функцию отсортировать массив и найти среднее значение.
При добавлении следующей функции на игровую площадку:
func mid (массив: [T]) -> T? {
охранник! массив.isEmpty else {return nil}
вернуть array.sorted () [(array.count - 1) / 2]
}
Вы получите ошибку. Проблема заключается в том, что для работы sorted ()
элементы массива должны быть Comparable
. Вам нужно как-то сказать Swift, что в середине
может занимать любой массив, если тип элемента реализует Comparable
.
Измените объявление функции на следующее:
func mid (массив: [T]) -> T? {
охранник! массив.isEmpty else {return nil}
вернуть array.sorted () [(array.count - 1) / 2]
}
Здесь вы используете синтаксис :
для добавления ограничения типа к параметру универсального типа T
. Теперь вы можете вызывать функцию только с массивом сопоставимых элементов
, так что sorted ()
всегда будет работать! Попробуйте ограниченную функцию, добавив:
mid (массив: [3, 5, 1, 2, 4]) // 3
Вы уже видели это при использовании Результат : тип Failure
ограничен Ошибка
.
Очистка добавить функции
Теперь, когда вы знаете об ограничениях типов, вы можете создать общую версию функций и добавить
с самого начала игровой площадки - это будет намного элегантнее, и очень порадует королеву. Добавьте следующий протокол и расширения для вашей игровой площадки:
Суммируемый протокол {static func + (lhs: Self, rhs: Self) -> Self}
расширение Int: Summable {}
расширение Double: Summable {}
Во-первых, вы создаете протокол Summable
, который говорит, что для любого соответствующего типа должен быть доступен оператор сложения +
.Затем вы указываете, что ему соответствуют типы Int
и Double
.
Теперь, используя универсальный параметр T
и ограничение типа, вы можете создать универсальную функцию add
:
func add (x: T, y: T) -> T {
вернуть х + у
}
Вы сократили свои две функции (на самом деле больше, так как вам бы потребовалось больше для других типов Summable
) до одной и удалили избыточный код.Вы можете использовать новую функцию как для целых, так и для двойных чисел:
let addIntSum = add (x: 1, y: 2) // 3
let addDoubleSum = add (x: 1.0, y: 2.0) // 3.0
И вы также можете использовать его на других типах, таких как строки:
String: Summable {}
let addString = add (x: "Generics", y: "Awesome !!!:]")
Добавляя другие соответствующие типы к Summable
, ваша функция add (x: y :)
становится все более полезной благодаря своему определению на основе обобщений! Ее Королевское Высочество награждает вас высшей честью королевства за ваши усилия.
Расширение универсального типа
Придворный Шут помогал Королеве, следя за ожидающими королевскими подданными и давая Королеве знать, какой предмет следующий, прежде чем официально приветствовать их. Он заглядывает в окно ее гостиной, чтобы сделать это. Вы можете смоделировать его поведение, используя расширение, примененное к нашему общему типу Queue
, описанному ранее в руководстве.
Расширьте тип Queue
и добавьте следующий метод прямо под определением Queue
:
Расширение очереди {
func peek () -> Элемент? {
вернуть элементы.первый
}
}
peek
возвращает первый элемент без его удаления из очереди. Расширение универсального типа легко! Параметр универсального типа виден так же, как и в теле исходного определения. Вы можете использовать свое расширение, чтобы заглянуть в очередь:
q.enqueue (newElement: 5)
q.enqueue (newElement: 3)
q.peek () // 5
Вы увидите значение 5 в качестве первого элемента в очереди, но ничего не было удалено, и очередь имеет то же количество элементов, что и раньше.
Royal Challenge : Расширьте тип Queue
, чтобы реализовать функцию isHomogene
, которая проверяет, все ли элементы очереди равны. Вам нужно добавить ограничение типа в объявлении очереди
, чтобы гарантировать, что его элементы могут быть проверены на равенство друг с другом.
[spoiler title = ”Однородная очередь”]
Ответ :
Сначала отредактируйте определение Queue
так, чтобы Element
соответствовал протоколу Equatable
:
struct Queue {
Затем создайте isHomogene ()
внизу вашей игровой площадки:
Расширение очереди {
func isHomogene () -> Bool {
сторож пусть первый = элементы.first else {return true}
return! elements.contains {$ 0! = first}
}
}
Наконец, проверьте это:
var h = Queue ()
h.enqueue (newElement: 4)
h.enqueue (newElement: 4)
h.isHomogene () // true
h.enqueue (newElement: 2)
h.isHomogene () // false
[/ spoiler]
Подклассы универсального типа
Swift имеет возможность создавать подклассы общих классов. Это может быть полезно в некоторых случаях, например, для создания конкретного подкласса универсального класса.
Добавьте следующий общий класс на игровую площадку:
Класс Box {
// Просто старая коробка.
}
Здесь вы определяете Box
класс. Коробка может содержать все что угодно, и поэтому это общий класс. Есть два способа подкласса Box
:
- Возможно, вы захотите расширить то, что делает коробка и как она работает, но оставить ее в общих чертах, так что вы все еще можете положить что-нибудь в коробку;
- Возможно, вы захотите иметь специализированный подкласс, который всегда знает, что в нем.
Swift позволяет оба. Добавьте это к вашей детской площадке:
Класс Gift : Коробка {
// По умолчанию подарочная коробка завернута в простую белую бумагу
func wrap () {
печать («Обернуть простой белой бумагой».)
}
}
класс Rose {
// Цветок выбора для сказочных драм
}
класс ValentinesBox: подарок <роза> {
// Роза для твоей валентинки
}
класс обуви {
// Просто обычная обувь
}
класс GlassSlipper: Shoe {
// Один ботинок, предназначенный для принцессы
}
Класс ShoeBox: Box {
// Ящик, который может содержать обувь
}
Здесь вы определяете два подкласса Box
: Gift
и ShoeBox
.Подарок
- это особая разновидность Коробка
, разделенная таким образом, что на ней могут быть определены различные методы и свойства, например wrap ()
. Тем не менее, он все еще имеет универсальный тип, то есть он может содержать что угодно. Shoe
и GlassSlipper
, особый тип обуви, были объявлены и могут быть размещены в экземпляре ShoeBox
для доставки (или представления соответствующему клиенту).
Объявите экземпляры каждого класса в соответствии с объявлениями подкласса:
let box = Box () // Обычный ящик, который может содержать розу
let gift = Gift () // Подарочная коробка с розой
let shoeBox = ShoeBox ()
Обратите внимание, что инициализатору ShoeBox
больше не требуется принимать параметр универсального типа, поскольку он зафиксирован в объявлении ShoeBox
.
Затем объявите новый экземпляр подкласса ValentinesBox
- коробку с розой, волшебный подарок специально для Дня святого Валентина.
let valentines = ValentinesBox ()
Несмотря на то, что стандартная коробка обернута белой бумагой, вы хотели бы, чтобы ваш подарок к празднику был немного изящнее. Добавьте следующий метод к ValentinesBox
:
переопределить func wrap () {
печать («Обернуть ♥♥♥ бумагой».)
}
Наконец, сравните результаты переноса этих двух типов, добавив следующий код на игровую площадку:
подарок.wrap () // простая белая бумага
valentines.wrap () // ♥♥♥ бумага
ValentinesBox
, хотя и построен с использованием обобщений, работает как стандартный подкласс с методами, которые могут быть унаследованы и переопределены из суперкласса. Как элегантно!
перечисления с соответствующими значениями
Королева довольна вашей работой и хочет предложить вам награду: ваш выбор общего сокровища или медали.
Добавьте следующую декларацию в конец вашей игровой площадки:
enum Reward {
футляр для сокровищ (T)
медаль
var message: String {
переключить себя {
кейс .treasureChest (пусть сокровище):
return "У тебя есть сундук, заполненный \ (сокровищем)."
case .medal:
возвращение "Стой гордый, ты заработал медаль!"
}
}
}
Этот синтаксис позволяет записать перечисление, где хотя бы один из случаев является универсальным блоком. С сообщением
var вы можете получить значение обратно. В примере Результат
, проиллюстрированном выше, случаи с успехом и сбоев являются общими для разных типов.
Чтобы получить обратно связанное значение, используйте его следующим образом:
let message = Reward.treasureChest ("💰"). сообщение
печать (сообщение)
Поздравляем и наслаждайтесь!
Куда пойти отсюда?
Обобщения Swift лежат в основе многих общих языковых функций, таких как массивы и дополнительные функции. Вы видели, как использовать их для создания элегантного, многократно используемого кода, который приведет к уменьшению количества ошибок - кода, пригодного для роялти.
Для получения дополнительной информации прочитайте главу Generics и главу справочника по языку Generic Parameters и Arguments в руководстве Apple, Язык программирования Swift .Вы найдете более подробную информацию о дженериках в Swift, а также несколько удобных примеров.
Хорошей следующей темой, основанной на том, что вы узнали в этом учебном пособии, является протоколно-ориентированное программирование - см. Введение в протокол-ориентированное программирование для получения более подробной информации.
Generics в Swift - это встроенная функция, которую вы будете использовать каждый день для написания мощных и безопасных для типов абстракций. Усовершенствуйте свой обычно используемый код, не забывая спрашивать «Могу ли я это обобщить?»
raywenderlich.com Еженедельно
Рассылка raywenderlich.com - это самый простой способ быть в курсе всего, что вам нужно знать как разработчик мобильных приложений.
Получите еженедельный дайджест наших учебных пособий и курсов и получите бесплатный углубленный электронный курс в качестве бонуса!
,- Товары
- Клиенты
- Случаи использования
- Переполнение стека Публичные вопросы и ответы
- Команды Частные вопросы и ответы для вашей команды
- предприятие Частные вопросы и ответы для вашего предприятия
- работы Программирование и связанные с ним технические возможности карьерного роста
- Талант Нанимать технический талант
- реклама Связаться с разработчиками по всему миру