21.Основные правила употребления знаков препинания: двоеточие, тире.
Двоеточие предупреждает о последующем разъяснении и пояснении. Эта функция знака раскрывается разными значениями: причинной обусловленности, обоснования, раскрытия содержания, конкретизации общего понятия.
1.Двоеточие ставится перед перечислением, которым заканчивается предложение:
А)Если перечислению предшествует обобщающее слово (а нередко, кроме того, еще слованапример, как-то, а именно), например: Острогою бьется крупная рыба, как-то: щуки, сомы, жерехи, судаки.
Б)Если перед перечислением нет обобщающего слова, но необходимо предупредить читателя, что далее следует какой либо перечень, например: Из-под сена виднелись: самовар, кадка с мороженной формой и еще кой-какие привлекательные узелки и коробочки.
2.Двоеточие ставится перед перечислением,
находящимся в середине предложения,
если перечислению предшествует обобщающее
слово или слова как-то, например,
а именно
3.Двоеточие ставится после предложения, за которым следует одно или несколько предложений, не соединенных с первым посредством cоюзов и заключающих в себе:
а) разъяснение или раскрытие содержания того, о чем говорится в первом предложении, например:
Я не ошибся: старик не отказался от предлагаемого стакана.
б) основание, причина того, о чем говорится в первом предложении, например: Не нагнать тебе бешеной тройки: кони сыты, и крепки, и бойки.
4.Двоеточие ставится между двумяпредложениями, не соединенными посредством
союзов, если в первом предложении такими
глаголами, как
Но (без оттенка предупреждения): Слышу, земля задрожала.
5.Двоеточие ставится после предложения, вводящего прямую речь, в частности – прямой вопрос или восклицание, например: А я думал: «Какой это тяжелый и ленивый малый!»
Примечание.
Группу предложений, в составе которых
есть пря мая речь, следует отличать от
сложных предложений с придаточным:
перед придаточным ставится, как обычно,
запятая, а в конце его – знак, требуемый
характером всего сложного предложения,
например: Я думал о том, какой это тяжелый
и ленивый малый.
1.Тире ставится между подлежащим и
сказуемым, выраженным существительным
в именительном падеже (без связки). Это
правило чаще всего применяется, когда
сказуемым определяется понятие,
выраженное подлежащим, например: Дуб –
дерево.
Оптика – раздел физики.
Примечание 1.Если перед сказуемым, выраженным существительным в именительном падеже, стоит отрицаниене, то тире не ставится, например: Бедность не порок.
Примечание 2.В вопросительном предложении с главным членом, выраженным местоимением, тире между главными членами не ставится, например: Кто твой отец?
2.Тире ставится между подлежащим и сказуемым, если подлежащее выражено формой именительного падежа существительного, а сказуемое неопределенной формой или если оба они выражены неопределенной формой, например: Назначение каждого человека – развить в себе все человеческое, общее и насладиться им. Жизнь прожить – не поле перейти.
3.Тире ставится передэто, это есть,
это значит, вот, если сказуемое,
выраженное существительным в именительном
падеже или неопределенной формой,
присоединяется посредством этих слов
к подлежащему, например: Поэзия – это
огненный взор юноши, кипящего избытком
сил.
4.Тире ставится перед обобщающим словом, стоящим после перечисления, например:
Ни крики петуха, ни звучный гул рогов, ни ранней ласточки на кровле щебетанье – ничто не вызовет почивших из гробов.
5.Тире ставится перед приложением, стоящим в конце предложения:
А) Если перед приложением можно без изменения смысла его вставить а именно, например: Я не слишком люблю это дерево – осину.
Б) Если при приложении есть пояснительные слова и необходимо подчеркнуть оттенок самостоятельности такого приложения, например: Со мною был чугунный чайник – единственная отрада моя в путешествиях по Кавказу.
6.Тире ставится между двумя сказуемыми и между двумя независимыми предложениями, если во втором из них содержится неожиданное присоединение или резкое противопоставление по отношению к первому, например: Я вышел, не желая его обидеть, на террасу – и обомлел. Я спешу туда ж – а там уже весь город.
Примечание 1. Для усиления оттенка
неожиданности тире может ставиться
после сочинительных союзов, связывающих
две части одного предложения, например:
Проси в субботу расчет и – марш в
деревню.
Примечание 2. Для выражения неожиданности может отделяться посредством тире любая часть предложения, например: И щуку бросили – в реку. И съела бедного певца – до крошки.
7.Тире ставится между двумя предложениями и между двумя однородными членами предложения, соединенными без помощи союзов, для выражения резкой противоположности, например: Я царь – я раб, я червь – я бог.
8.Тире ставится между предложениями, не соединенными посредством союзов, если второе предложение заключает в себе результат или вывод из того, о чем говорится в первом, например: Солнце взошло – начинается день.
9.Тире ставится между двумя предложениями, если они связаны по смыслу как придаточное (на первом месте) с главным (на втором месте), но подчинительные союзы отсутствуют, например: Назвался груздем – полезай в кузов. Лес рубят – щепки летят.
10.Тире ставится для указания места распадения простого предложения на две словесные группы, если другими знаками препинания или порядком слов это не может быть выражено, например: Я вас спрашиваю: рабочим – нужно платить?
Такое
распадение часто наблюдается при
пропуске какого-нибудь члена предложения
(почему ставящееся в этом случае тире
называется эллиптическим), например:
Мне все послушно, я же – ничему.
11.Посредством тире выделяются:
А) Предложения и слова, вставляемые в середину предложения с целью пояснения или дополнения его, в тех случаях, когда выделение скобками может ослабить связь между вставкой и основным предложением, например: Тут – делать нечего – друзья поцеловались. Лишь один раз – да и то в самом начале – произошел неприятный и резкий разговор.
Б) Распространенное приложение, стоящее после определяемого cyществительного, если необходимо подчеркнуть оттенок самостоятельности такого приложения , например: Перед дверями клуба – широкого бревенчатого дома – гостей ожидали рабочие со знаменами.
В) Стоящая в середине предложения группа однородных членов, например: Обычно из верховых станиц – Еланской, Вешенской, Мигулинской и Казанской – брали казаков в 11-12-й армейские казачьи полки и в лейб-гвардии Атаманский.
Примечание.Тире ставится после перечисления,
находящегося в середине предложения,
если этому перечислению предшествует
обобщающее слово или словакак то,
например, а именно.
12.Тире ставится в качестве дополнительного знака после запятой перед словом, которое повторяется для того, чтобы связать с ним новое предложение (чаще придаточное, усиливающее, дополняющее или развивающее главное предложение) или дальнейшую часть того же предложения, например: Теперь же, судебным следователем, Иван Ильич чувствовал, что все без исключения, самые важные, самодовольные люди, – все у него в руках.
13.Тире ставится в качестве дополнительного знака после запятой, которая отделяет главное предложение от предшествующей ему группы придаточных, если надо подчеркнуть распадение единого целого на две части, например: Кто виноват из них, кто прав, – судить не нам.
14.Тире ставится между двумя словами для обозначения пределов пространственных, временных или количественных (в этом случае тире заменяет по смыслу слова «от… до»), например: Перелеты СССР – Америка. Рукописи XI – XIV вв.
15.Тире ставится между двумя или несколькими
именами собственными, совокупностью
которых называется какое либо учение,
научное учреждение и т.
п., например:
Физический закон Бойля – Мариотта.
Правила русской орфографии и пунктуации (1956 г.). Зачем нужно двоеточие в русском языке? Что означает двоеточие в конце предложения
Двоеточие
§ 159. Двоеточие ставится перед перечислением, которым заканчивается предложение:
1. Если перечислению предшествует обобщающее слово (а нередко, кроме того, еще слова например, как-то*, а именно ), например:
- Отовсюду поднялись казаки: от Чигирина, от Переяслава, от Батурина, от Глухова, от низовой стороны днепровской и от всех его вepховий и островов.
Гоголь
- Выступили знакомые подробности: оленьи рога, полки с книгами, зеркало, печь с отдушником, который давно надо было починить, отцовский диван, большой стол, на столе открытая книга, сломанная пепельница, тетрадь с его почерком.
Л. Толстой
- Острогою бьется крупная рыба, как-то: щуки, сомы, жерехи, судаки*.
С.
Аксаков
2. Если перед перечислением нет обобщающего слова, но необходимо предупредить читателя, что далее следует какой-либо перечень, например:
- Из-под сена виднелись: самовар, кадка с мороженной формой и еще кой-какие привлекательные узелки и коробочки.
§ 161. Двоеточие ставится после предложения, за которым следует одно или несколько предложений, не соединенных с первым посредством cоюзов и заключающих в себе:
а) разъяснение или раскрытие содержания того, о чем говорится в первом предложении, например:
- Я не ошибся: старик не отказался от предлагаемого стакана.
Пушкин
- Сверх того, заботы большого семейства беспрестанно мучили ее: то кормление грудного ребенка не шло, то нянька ушла, то, как теперь, заболел один из детей.
Л. Толстой
- Тут открылась картина довольно занимательная: широкая сакля, которой крыша опиралась на два законченных столба, была полна народа.
Лермонтов
б) основание, причина того, о чем говорится в первом предложении, например:
- Не нагнать тебе бешеной тройки: кони сыты, и крепки, и бойки.

Некрасов
- Недаром боги греческие признавали над собою неотразимую власть судьбы: судьба – это была та темная граница, за которую не пepecтупало сознание древних.
Белинский
§ 162. Двоеточие ставится между двумя предложениями, не соединенными посредством союзов, если в первом предложении такими глаголами, как видеть, смотреть, слышать, знать, чувствовать и т. п., делается предупреждение, что далее последует изложение какого-нибудь факта или какое-нибудь описание, например:
- И вот бакенщик и помощник-киргиз видят: плывут по реке две лодки.
А. Н. Толстой
- Пополз я по густой траве вдоль по оврагу, смотрю: лес кончился, несколько казаков выезжают из него на поляну, и вот выскакивает прямо к ним мой Карагез…
Лермонтов
- Вот наконец, мы взобрались на Гуд-гору, остановились и оглянулись: на ней висело серое облако, и его холодное дыхание грозило близкой бурею.
..Лермонтов
- Я знаю: в вашем сердце есть и гордость, и прямая честь.
Пушкин
- Павел чувствует: чьи-то пальцы дотрагиваются до его руки выше локтя.
Н. Островский
Но (без оттенка предупреждения):
- Слышу, земля задрожала.
Некрасов
§ 163. Двоеточие ставится после предложения, вводящего прямую речь, в частности – прямой вопрос или восклицание, например:
- Минуты две они молчали, но к ней Онегин подошел и молвил: «Вы ко мне писали, не отпирайтесь».
Пушкин
- По окончании работы Петр спросил Ибрагима: «Нравится ли тебе девушка, с которой ты танцевал менуэт на прошедшей ассамблее?»
Пушкин
- А я думал: «Какой это тяжелый и ленивый малый!»
Чехов
Примечание. Группу предложений, в составе которых есть прямая речь, следует отличать от сложных предложений с придаточным: перед придаточным ставится, как обычно, запятая, а в конце его – знак, требуемый характером всего сложного предложения, например:
- Я думал о том, какой это тяжелый и ленивый малый.

- Я старался вспомнить, где был я в этот день ровно год тому назад.
- Неужели опять он напомнит о том, что было год тому назад?
- Как тяжело вспоминать о том, что было в этот ужасный день!
* Комментарий редакции портала
Дефисное написание составного союза как-т о (в значении «а именно») следует считать устаревшим. В своде «Правила русской орфографии и пунктуации. Полный академический справочник» (под ред. В. В. Лопатина. М., 2006 и последующие издания) в § 142 союз как то включен в список служебных слов, которые пишутся раздельно.
Еще в «Словаре русского языка» С. И. Ожегова в статье КАК указывалось: «Как то – то же, что а именно. Все предприятия, как то: строительные, текстильные, полиграфические — работают нормально ».
Раздельное написание составного союза как то позволяет отличить его на письме от местоименного наречия ка к-то .
Когда в предложении ставится двоеточие? Его обычно используют в или там, где присутствуют выраженные любой частью речи.
В данной статье мы расскажем о том, когда ставится двоеточие. Итак, ниже приведем список правил, которые регламентируют постановку данного и конкретные примеры. Когда ставится двоеточие?
Правила русского языка
1. В том случае, если после слов автора в предложении идет прямая речь. Примеры:
Подойдя к прилавку, Алексей сказал: «Дайте мне, пожалуйста, пакет молока».
Я подумал: «А стоит ли ему доверять?»
Если в предложении не используется прямая речь и присутствует косвенная (например «Я подумал, что неплохо было бы прийти вовремя» ), то двоеточие не употребляется. Вместо него используются союзы и запятые.
2. Двоеточие ставится в том случае, если два предложения объединены в одно без помощи союзов, а вторая часть раскрывает смысл слов первой. Пример:
Мы наконец-то спустились с горы и осмотрелись: перед нами было чистейшее озеро.
Двое охранников увидели: воры все-таки сбежали.
3. Двоеточие ставится также, если предложение состоит из нескольких частей (составное).
При этом возможны две ситуации:
. Вторая часть предложения раскрывает смысл первой. Пример:
Елена оказалась права: единственным человеком, который мог его остановить, был его отец.
Иван ему не доверял: боялся, что Семен снова его обманет.
Во второй части описана причина. Пример:
Я не просто так тебе не доверяла: ты всегда молчал и был крайне холоден.
4. Когда ставится двоеточие? В предложении после и перед перечислением чего-либо, которым оно заканчивается. Пример:
В этом доме проживали все его родственники: мама, отец, тетя, бабушка и теща. У нее в квартире было так чисто, что, казалось, блестело все: и посуда, и зеркала, и даже пол. В этом лесу водятся хищники: волки, лисы и медведи.
5. Двоеточие ставится в предложении, если идет перечисление чего-либо, но нет обобщающего слова. Пример:
Из сумки торчали: кошелек, документы, расческа и паспорт.
Из квартиры вышли: женщина, мужчина и ребенок.
6. Двоеточие ставится в случае перечисления чего-либо, присутствия обобщающего слова или следующих слов: «как то», «например», «а именно». Примеры:
У него было много планов на ближайшее время, например: купить компьютер, съездить отдохнуть и жениться.
Евгения интересовали сведения о городе Астрахани, а именно: когда он был основан, сколько жителей в нем проживает и какие там есть достопримечательности.
Другие случаи
В каких случаях ставится двоеточие еще?
. В математике в качестве знака деления. Пример: 6:3=2.
. В информационных технологиях при обозначении компьютерных дисков. Пример: D: R: и так далее.
Теперь вы знаете, когда ставится двоеточие, и можете смело этим пользоваться. Часто по неграмотности или из-за невнимательности вместо данного знака препинания может был использован знак «тире». Это является недопустимым нарушением А в математике знак деления может обозначаться несколькими вариантами: 6/3=2 или 6:3=2.
Итак, двоеточие — это разделительный знак препинания. В отличие от точки, восклицательного и вопросительного знаков и многоточия он не имеет отделительной функции, то есть не отделяет предложения в тексте друг от друга. Двоеточие ставится только внутри предложения, и поэтому указывает на то, что после него высказывание будет продолжено.
Двоеточие можно встретить в простом и сложном предложении. В простом предложении оно разделяет и выделяет части высказывания, в сложном играет и смысловую роль: указывает на смысловые отношения между частями бессоюзного сложного предложения.
Так как же правильно употреблять двоеточие, не совершать ошибок и не путать его с другими? Давайте рассмотрим основные случаи.
Двоеточие в простом предложении
Правило 1. Двоеточие в предложении с однородными членами
Если обобщающее слово стоит перед однородными членами, то после него нужно двоеточие, например: Снег лежал повсюду : на крышах домов, на заборах, на газонах, на машинах.
В этом предложении слово повсюду обобщает ряд однородных обстоятельств. Обобщающее слово расположено перед однородными членами, и поэтому после него стоит двоеточие.
Правило 2. Двоеточие в предложениях с уточняющими словами
При обобщающих словах в предложении могут употребляться уточняющие слова: как например, например, как то, а именно, перед которыми ставится запятая, а после них – двоеточие. Например: Снег лежал повсюду , а именно : на крышах домов, на заборах, на газонах, на машинах.
В этом предложении вместе с обобщающим словом повсюду употреблена уточняющая его конструкция «а именно» , после которой следует ряд однородных членов, поэтому после нее стоит двоеточие.
Правило 3. Двоеточие в конструкциях с прямой речью
Если прямая речь следует после слов автора, то перед ней ставится двоеточие, причем сама прямая речи заключается в кавычки и первое слово прямой речи пишется с прописной буквы: Учитель сказал: «Здравствуйте, дети!».
Также если прямая речь разрывает слова автора в тексте, то перед ней ставится двоеточие, например: Сказав: «Здравствуйте, дети!», учитель вошел в класс. После прямой речи при этом необходимо поставить запятую.
Двоеточие в сложном предложении
Правило 4. Между частями бессоюзного сложного предложения (БСП) может ставиться двоеточие в следующих случаях.
- Вторая часть БСП поясняет то, о чем говорилось в первой (между частями предложения можно вставить «а именно» ), например: В народе есть такая примета: ласточки низко летают к дождю; Катя пишет очень грамотно: никогда не делает ошибок в словах, правильно расставляет знаки препинания. В этих бессоюзных сложных предложениях во второй части дается пояснение того, о чем идет речь в первой. Между частями предложений можно вставить «а именно» : В народе есть такая примета (а именно): ласточки низко над водой летают к дождю. Поэтому в приведенных предложениях ставится двоеточие.

- Вторая часть БСП раскрывает причину того, о чем говорилось в первой (между частями предложения можно вставить союзы: так как, потому что ), например: Катя пишет очень грамотно: она много читает, учит стихи наизусть, тренирует память; Скоро пойдет дождь: ласточки летают низко над водой. В этих БСП вторая часть обосновывает, указывает на причину того, о чем говорилось в первой. Между частями можно вставить союзы: так как, потому что. Скоро пойдет дождь (потому что): ласточки летают низко над водой. Поэтому в таких предложениях ставится двоеточие.
- Вторая часть БСП дополняет, раскрывает то, о чем говорилось в первой (такие предложения синонимичны сложноподчиненным предложениям с придаточным изъяснительным, поэтому между частями БСП можно вставить союз что ). Например: Катя знает: читать книги не только интересно, но и очень полезно для учебы; В народе говорят: ласточки низко над водой к дождю летают.
В данных БСП во второй части раскрывается смысл того, о чем идет речь в первой. Если части такого предложения соединить союзом что , то получится сложноподчиненное предложение с изъяснительным придаточным: В народе говорят (что,): ласточки низко над водой к дождю летают. В предложениях такого типа ставится двоеточие.
- В первой части предложения опущены глаголы: и увидел, и услышал, и почувствовал , например: Я поднял голову: луч солнца пробивался сквозь облака, озаряя поляну ярким светом; Он обернулся: эхо торопливых шагов раздавалось совсем близко. Данные предложения также являются синонимичными сложноподчиненным с придаточным изъяснительным, в первой части пропущены глаголы типа: и увидел, и услышал, между частями можно вставить союз что. Я поднял голову (и увидел, что) : луч солнца пробивался сквозь облака, озаряя поляну ярким светом.
Двоеточие vs тире
Главная сложность в употреблении двоеточия заключается в том, что иногда бывает легко перепутать этот знак препинания с другим — тире.
В последнее время эти знаки часто употребляются параллельно, то есть в одних и тех же случаях может ставиться как тире, так и двоеточие. Например: И судьи решили: если будет дождь, соревнования отменят; Заметил первый камень, решил — здесь клад, стал ковыряться (Тендряков), Конечно, он изменился (: –) сгорбился, поседел, с морщинками в уголках рта; Вхожу (: – ) все тихо; Эти слова при нем не произносите (: – ) может обидеться; Всех интересовал только один вопрос (: – ) как поскорее выпутаться из создавшегося положения; Это означало одно (: – ) нужно расстаться.
Такие варианты считаются равноправными, можно не опасаясь ошибиться употреблять и тире, и двоеточие. Однако нужно помнить, что тире помимо синтаксических функций, выполняет и эмоционально-экспрессивные, то есть указывает на эмоциональность высказывания, подчеркивает его выразительность.
Поэтому если предложение не несет таких смыслов, является нейтральным, нужно избегать употребления тире и ставить двоеточие, следуя рассмотренным нами правилам.
Двоеточие — один из старейших знаков препинания. Ему уже без малого 600 лет, а появилось двоеточие в далёком XV веке, практически сразу после самого первого пунктуационного знака — точки.
У С.Я. Маршака есть стихотворение, которое называется «Знаки препинания» . Так вот двоеточие в этом стихотворении говорит о себе следующие слова:
Однако, не смотря на всю важность двоеточия, по количеству правил этот знак препинания значительно уступает всем остальным. Чтобы правильно употреблять двоеточие в письменной речи, нужно запомнить всего-то четыре правила.
Правило первое. Двоеточие и обобщающие слова
Двоеточие ставится в тех предложениях, в которых используются обобщающие слова и однородные члены предложения. Этот знак препинания нужно ставить после обобщающих слов и перед перечислением.
Сергей Тимофеевич Аксаков в одном из своих произведений пишет: «Охота с острогою требует трёх условий : тёмной ночи, светлой воды и совершенно ясной погоды «.
Обобщающее словосочетание в этом предложении подчёркнуто одной чертой, а однородные члены предложения — курсивом.
Не стоит забывать, что если обобщающее слово стоит после однородных членов предложения, то ставим не двоеточие, а тире. Это же предложение в обратном порядке будет выглядеть следующим образом:
Тёмная ночь, светлая вода и совершенно ясная погода — три условия , которые нужны для охоты с острогою.
Правило второе. Двоеточие и бессоюзные сложные предложения
Двоеточие ставится в бессоюзных сложных предложениях в нескольких случаях, а именно: если вторая часть разъясняет или раскрывает содержание первой части, указывает на причину того, о чём идёт речь в первой части, а также предупреждает, что дело на этом не заканчивается. Чтобы запомнить это правило, нужно выучить слова, которыми можно дополнить предложение.
1. Если предложение указывает на причину, то между двумя простыми частями гармонично впишутся союзы потому что и так как .
Вспомним всем хорошо известные слова Максима Горького о книгах:
Любите книгу: она поможет вам разобраться в пёстрой путанице мыслей, она научит вас уважать человека.
Вместо двоеточия мы можем легко поставить и потому что , и так как . В этом предложении видно, как вторая часть раскрывает причину первой, называя нам веские причины того, почему мы должны любить книгу — источник знаний.
2. Если вторая часть разъясняет первую, то можно поставить слова а именно или как то. Вот пример из произведения А.С. Пушкина:
Погода была ужасная: ветер выл, мокрый снег падал хлопьями.
Вместо двоеточия уместно поставить слова а именно .
3. Если в предложении одна часть предупреждает о дальнейшем изложении, то можно поставить слова и увижу что, и услышу, как. Рассмотрим пример из пьесы Николая Островского:
Сами видите: всё вокруг в могущественном движении.
В это предложение мы можем поставить союз что, превратив бессоюзное сложное предложение в сложноподчинённое.
Правило третье: Двоеточие и прямая речь
Наконец я ей сказал: «Хочешь, пойдём прогуляться на вал?»
Он отвернулся и, отходя, пробормотал: «А всё-таки это совершенно против правил».
Правило четвёртое. Двоеточие и заголовки
Двоеточие ставится в заголовках, если они делятся на две части:
Первая часть (именительная) называет место действия, лицо, общую проблему.
Вторая часть конкретизирует первую часть.
Например:
Бажов: читатель и книголюб.
Бюджет страны: проблемы и суждения.
Вот и все правила, которые относятся к расстановке двоеточий в предложениях. Однако не забывайте о том, что этот знак препинания можно использовать и для выражения чувств. Например, так:) или:(.
Знаки препинания — это система символов, используемых в языке на письме. Одинаковые знаки препинания в разных языках ставятся по-разному и имеют разное значение.
В целом, они необходимы, чтобы структурировать письменную речь, ведь в ней не слышно пауз или интонаций, которые мы могли бы произнести вслух в обычной ситуации.
Двоеточие — знак препинания, который ставится внутри предложения. Зачем нужно двоеточие? Оно означает, что части, между которыми оно поставлено, связаны между собой или отличаются друг от друга. Двоеточие используется как в простых, так и в сложных предложениях и призвано заострять внимание на том, что следует за ним.
Зачем нужно двоеточие в письменной речи?
- Двоеточие необходимо ставить при перечислении после обобщающего слова «Сколько же в том магазине было видов сладостей: шоколад, тянучка, карамель, мармелад, сладкая вата, булочки с корицей».
- Зачем нужно двоеточие? Сочинение, если вы пишете его по литературному произведению, часто требует цитат из первоисточника. В предложениях с прямой речью двоеточие разделяет слова автора и прямую речь. «Я выдержал долгую паузу и сказал: «Он уехал навсегда, он никогда больше сюда не вернется».
Вставляя в свое сочинение цитату из текста, поставьте двоеточие, а затем кавычки. - В сложных предложениях двоеточие используется, если одно из простых предложений поясняет или дополняет другое «Он знал, что убийца все еще находится в комнате, у него были на то причины: следы были во всей комнате, кроме дверей».
Итак, если вам потребуется написать сочинение-рассуждение о том, зачем нужно двоеточие, вы сможете объяснить, что оно необходимо, чтобы акцентировать внимание на каких-либо частях предложения, которые отличаются от основного текста. Это перечисление однородных членов предложения после обобщающего слова, выделение прямой речи, пояснение одного предложения другим. А в чем состоит отличие между дроеточием и тире и
как ставить перед однородными членами, примеры
Предложения с обобщающими словами
Однородные члены предложения зачастую объединяются одним синтезирующим словом, которое наиболее полно воплощает в себе их свойства. Это слово является обобщением для однородных членов, соединяя их по смыслу.
Обобщающее слово — это слово при однородных членах предложения, которое называет единое родовое понятие. По отношению к нему однородные члены являются видовыми, то есть частными, понятиями. Это слово также может называть некое целое, по отношению к которому однородные члены обозначают части.
Ряд однородных членов предложения очень часто сопровождается особым словом, которое является общим названием для предметов, явлений или признаков, перечисленных с его помощью. При этом, однородные члены и слово, их обобщающее, являются одинаковыми членами предложения. Они отвечают на одни и те же вопросы и обладают единой синтаксической функцией.
При схематическом изображении предложения обобщающее слово обозначается с помощью кружочка с точкой, как на примере:
Источник: resh.edu.ru
Чтобы лучше понять, что же такое обобщающее слово, давайте рассмотрим несколько примеров простых предложений такого типа:
Пример 1В осенней природе всё было прекрасно: и медленно плывущие по небу серые тучи, и осинка, шепчущаяся с травой, и суровая старая ель, и лишайник.
В данном случае, в качестве обобщающего, выступает слово «всё», выраженное местоимением. Оно является подлежащим, как и перечисленные однородные члены, выраженные существительными:
- тучи;
- осинка;
- ель;
- лишайник.
Чаще всего объединяющие слова в предложении выражаются либо местоимением, либо наречием, например: все, никуда, ничего, всегда, никто, везде.
Пример 2В лесу не видно никого вокруг: ни птицы, ни зверя, ни человека.
Пример 3Везде: над лесом, над степью и над крышами деревенских изб — повисло коромысло разноцветной радуги.
Реже слова-обобщения выражаются существительными и прилагательными. Они могут быть выражены также цельными словосочетаниями или фразеологизмами.
Пример 4Каждый день приносил старый Макар разную редкую рыбу: голавлей, щук, язей, линей и окуней.
В данном предложении обобщающим будет являться сочетание «разную редкую рыбу».
Пример 5В ней было сокрыто ещё шесть матрешек в разноцветных платках: зеленом, желтом, синем, фиолетовом.
Источник: resh.edu.ru
Итак, давайте подведем итог, что же обозначают слова, выступающие в роли обобщения для ряда однородных членов:
- они представляют собой родовое понятие, а однородные члены, к которым они относятся — видовое;
- могут обозначать понятие какого-то целого, тогда как однородные члены — его части;
- являются единым названием предметов или признаков.
Источник: russkiiyazyk.ru
Пунктуация в предложениях с обобщающим словом при однородных членах
Если перед однородными членами предложения располагается слово-обобщение либо словосочетание, то перед ними ставится двоеточие.
Осень проявляется во всем: в цвете неба, в росе и туманах, в криках птиц и яркости звездного неба.
Если после объединяющего слова или словосочетания стоят следующие слова: «как-то», «а именно», «например», «то есть», то перед ними ставится запятая, а после них — двоеточие.
Сухими болотами называются места, сохранившие в себе все признаки некогда существовавших болот, как-то: разные породы болотных трав, следы родниковых ям и кочки.
Если перед однородными членами предложения не стоит объединяющее слово либо словосочетание, то перед ними двоеточие ставится только в том случае, если необходимо обозначить читателю, что дальше последует перечисление.
Пример 8В кабинете находились: полковник Павленко, капитан Кулебин, майор Максименко и рядовой Семенов.
Приведем примеры таких слов в научно-деловой речи:
- на собрании присутствовали: … ;
- для получения раствора необходимо смешать: … ;
- роли исполняли: … ;
- в фильме снимались: …
Если в ряду однородных членов предложения, выраженных именами собственными, предшествует общее приложение, не выступающее в роли обобщающего слова, а при чтении отсутствует смысловая пауза, то двоеточие перед такими однородными членами не ставится.
Пример 9Писатели-классики Толстой, Тургенев, Чехов и Гоголь описывали сцены жизни простых людей.
Двоеточие не ставится также перед однородными членами предложения в том случае, если они представляют собой названия литературных произведений либо географические названия, перед которыми находится общее для них определяемое слово, после которого пауза при чтении отсутствует, и которое не выступает в роли обобщающего слова.
Пример 10На весь мир знамениты своими здравницами курорты Краснодарского края, Крыма, Грузии и Абхазии. Наиболее известные романы Гончарова «Обломов», «Обрыв» и «Обыкновенная история» образуют некую трилогию.
В случае если однородные члены предложения носят характер приложения или уточнения, то после объединяющего их слова вместо двоеточия может ставиться знак тире.
Пример 11Золотистый свет нежно заливал окрестности — ветряную мельницу, красные крыши автомобильной станции, элеваторы. Русские басни и сказки любят все — и дети, и взрослые. Мой друг замечательный человек — добрый, умный, чуткий, готовый всегда прийти на помощь в трудную минуту.
Если слово-объединение следует за однородными членами предложения, то перед ним ставится знак тире.
Пример 12Наигранная веселость, самоуверенность, самообладание и сдержанность — все покинуло Егора в этот момент. На футбольной площадке, на лужайке, в парке и сквере — всюду царила эта удивительная, необъяснимая тишина.
Если после однородных членов предложения перед обобщающим словом стоит вводное слово или словосочетание, например: «словом», «одним словом», «короче говоря», то перед ним ставится тире, а после него — запятая.
Пример 13Пшеница, гречиха, овес, подсолнух, кукуруза и картофель — словом, на что только ни взгляни, все уже созрело.
Если предложение не заканчивается однородными членами, которые стоят после обобщающего слова, то перед такими однородными членами ставится двоеточие, а после них — тире.
Пример 14Господа, разве все эти вещи: золотая ручка, записная книжка в кожаном переплете, дорогие часы на цепочке и новый фотографический аппарат — не говорят больше всяких слов о нашем странном госте?
Если в рамках контекста после однородных членов предложения требуется постановка запятой, то она ставится, а тире либо ставится, либо опускается.
Наряду с такими стихийными бедствиями, как-то: смерч, пожар, град, начисто выбивающий плодородные поля, ненастье или великая сушь, — есть в деревнях еще одно бедствие. В данном случае запятая закрывает обособленный оборот с предложным сочетанием «наряду с».
Владелец был хорошо осведомлен о ценах на разные виды крупных товаров, как-то: муку, древесину, мед и прочее, но покупал только сущие безделушки. Здесь тире как бы «поглощается» запятой.
Если для усиления смысловой роли в случае большого количества однородных членов предложения обобщающее слово употребляется дважды — перед перечислением и после него, то в таких случаях сохраняется пунктуация, общепринятая для конструкций с однородными членами и обобщающим словом: двоеточие перед однородными членами и знак тире после них.
Пример 16Мне очень хотелось прочитать про все: про новые открытия, про моря, про солнце и звезды, про великих ученых и исследователи — про все, что люди уже хорошо знают, а я еще нет.
Вместо двоеточия перед однородными членами в этих случаях можно поставить также и тире, таким образом, они будут выделяться тире с двух сторон.
Пример 17Все эти люди — простые рыбаки, матросы, кочегары, веселые юнги, лодочники, машинисты, грузчики и водолазы — все они были молоды, здоровы и пропитаны терпким и таким знакомым запахом моря.
Если однородные члены предложения, стоящие после обобщающего слова, являются сильно распространенными, и особенно если внутри таких конструкций имеются запятые, то они разделяются знаком «точка с запятой».
Пример 18Мир, оказывается, бесконечно разнообразен: и бескрайние моря, и снеговые горы в облаках, и безбрежные пески, и непроходимые леса; и неожиданные города с церквями, похожими на надетые друг на друга золотые колокола; и деревья, как высокие папоротники; и люди, одетые в балахоны, с тюрбанами на голове; и слоны с будками на спинах.
Когда ставятся двоеточия, примеры
Когда в предложении есть слова, выполняющие роль обобщения, двоеточие ставится:
- в начале предложения, если обобщающее слово стоит перед рядом однородных членов: Желтые кленовые листья лежали повсюду: на тропинках, на скамейках, на крышах домов;
- после объединяющего слова или словосочетания, когда используются следующие слова: «как-то», «например», «то есть», «а именно»; в таких случаях перед ними ставится запятая, а после них — двоеточие: В портфеле ученика находились все необходимые школьные принадлежности, а именно: тетради, ручки, карандаши, учебники, циркуль, линейка и резинка.

- в случае, если консолидирующее слово стоит перед однородными членами, а после них предложение не заканчивается, то после обобщающего слова необходимо поставить двоеточие, а после однородных членов — тире: Везде: на тротуаре, на газонах, на крышах машин — лежали крупные капли дождя.
В некоторых случаях перед однородными членами предложения обобщающее слово не ставится. Тогда его функцию выполняет глагольное сказуемое.
Пример 19На приеме у помещика присутствовали: местный полицмейстер, исправник, судья, прокурор и священник.
Однородные члены предложения, выраженные именами собственными, географическими наименованиями, названиями литературных произведений, двоеточием не выделяются, даже при наличии общего определяемого существительного. В речи это выражается отсутствием характерной паузы.
Двоеточие -Пунктуация русского языка -Правила русской орфографии и пунктуации. Современный русский язык
Двоеточие -Пунктуация русского языка -Правила русской орфографии и пунктуации.
Современный русский язык
- Информация
- Контакты
- Карта сайта
Обычная версия Версия для слабовидящих
AAA
Обычный Черный
Кто не делится найденным, подобен свету в дупле секвойи (древняя индейская пословица)
Версия для печати
Библиографическая запись: Двоеточие. — Текст : электронный // Myfilology.ru – информационный филологический ресурс : [сайт]. – URL: https://myfilology.ru//144/punktuatsiia/dvoetochie/ (дата обращения: 4.10.2022)
Содержание
§ 159. Двоеточие ставится перед перечислением, которым заканчивается предложение:
- Если перечислению предшествует обобщающее слово (а нередко, кроме того, еще слова например, как-то, а именно), например:
Отовсюду поднялись казаки: от Чигирина, от Переяслава, от Батурина, от Глухова, от низовой стороны днепровской и от всех его верховий и островов.
ГогольВыступили знакомые подробности: оленьи рога, полки с книгами, зеркало, печь с отдушником, который давно надо было починить, отцовский диван, большой стол, на столе открытая книга, сломанная пепельница, тетрадь с его почерком.
Л. ТолстойОстрогою бьется крупная рыба, как-то: щуки, сомы, жерехи, судаки.
С. Аксаков
- Если перед перечислением нет обобщающего слова, но необходимо предупредить читателя, что далее следует какой-либо перечень, например:
Из-под сена виднелись: самовар, кадка с мороженной формой и еще кой-какие привлекательные узелки и коробочки.
Л. Толстой
§ 160. Двоеточие ставится перед перечислением, находящимся в середине предложения, если перечислению предшествует обобщающее слово или слова как-то, например, а именно, например:
И все это: и река, и прутья верболоза, и этот мальчишка — напомнило мне далекие дни детства.
Первенцев
Я посетил крупнейшие города СССР, а именно: Москву, Ленинград, Баку, Киев — и возвратился на Урал.
О тире после перечисления, стоящего в середине предложения после двоеточия, см. § 174, п. 3, примечание.
§ 161. Двоеточие ставится после предложения, за которым следует одно или несколько предложений, не соединенных с первым посредством союзов и заключающих в себе:
- а) разъяснение или раскрытие содержания того, о чем говорится в первом предложении, например:
Я не ошибся: старик не отказался от предлагаемого стакана.
ПушкинСверх того, заботы большого семейства беспрестанно мучили ее: то кормление грудного ребенка не шло, то нянька ушла, то, как теперь, заболел один из детей.
Л. ТолстойТут открылась картина довольно занимательная: широкая сакля, которой крыша опиралась на два закопченные столба, была полна народа.
Лермонтов
- б) основание, причина того, о чем говорится в первом предложении, например:
Не нагнать тебе бешеной тройки: кони сыты, и крепки, и бойки.
НекрасовНедаром боги греческие признавали над собою неотразимую власть судьбы: судьба — это была та темная граница, за которую не переступало сознание древних.
Белинский
§ 162. Двоеточие ставится между двумя предложениями, не соединенными посредством союзов, если в первом предложении такими глаголами, как видеть, смотреть, слышать, знать, чувствовать и т. п., делается предупреждение, что далее последует изложение какого-нибудь факта или какое-нибудь описание, например:
И вот бакенщик и помощник-киргиз видят: плывут по реке две лодки.
А.Н. Толстой
Пополз я по густой траве вдоль по оврагу, смотрю: лес кончился, несколько казаков выезжают из него на поляну, и вот выскакивает прямо к ним мой Карагез…
Лермонтов
Вот, наконец, мы взобрались на Гуд-гору, остановились и оглянулись: на ней висело серое облако, и его холодное дыхание грозило близкой бурею…
Лермонтов
Я знаю: в вашем сердце есть и гордость, и прямая честь.
Пушкин
Павел чувствует: чьи-то пальцы дотрагиваются до его руки выше локтя.
Н. Островский
Но (без оттенка предупреждения):
Слышу, земля задрожала.
Некрасов
§ 163. Двоеточие ставится после предложения, вводящего прямую речь, в частности — прямой вопрос или восклицание, например:
Минуты две они молчали, но к ней Онегин подошел и молвил: «Вы ко мне писали, не отпирайтесь».
Пушкин
По окончании работы Петр спросил Ибрагима: «Нравится ли тебе девушка, с которой ты танцевал менуэт на прошедшей ассамблее?»
Пушкин
А я думал: «Какой это тяжелый и ленивый малый!»
Чехов
Примечание. Группу предложений, в составе которых есть прямая речь, следует отличать от сложных предложений с придаточным: перед придаточным ставится, как обычно, запятая, а в конце его — знак, требуемый характером всего сложного предложения, например:
Я думал о том, какой это тяжелый и ленивый малый.
Я старался вспомнить, где был я в этот день ровно год тому назад.
Неужели опять он напомнит о том, что было год тому назад?
Как тяжело вспоминать о том, что было в этот ужасный день!
04.03.2016, 1056 просмотров.
Знаки препинания в английском языке
«Зачем работать над английской пунктуацией?», — спросите вы. На первый взгляд кажется, что в эпоху компьютеров, текстовых редакторов и автоматической проверки правописания ни к чему вникать в запутанные правила и бесчисленные исключения английской грамматики и пунктуации.
Тем не менее, знакомство с правилами, которые мы предлагаем вашему вниманию, – не пустая трата времени. И вот почему.
Вы, наверное, и сами давно заметили, что вордовская проверка правописания не всегда оказывается на высоте: то исправляет совершенно правильные предложения, то пропускает грубейшие ошибки. В отличие от вас, автора текста, компьютерной программе и дела нет до смысловых тонкостей, она просто руководствуется набором заданных правил. Поэтому, несмотря на пользу таких программ, полагаться только на них опасно.
Есть и еще одна, более веская причина.
Когда вы будете устраиваться на работу в престижную иностранную компанию, вам понадобится произвести впечатление на вашего будущего начальника. Во многих компаниях высоко ценится умение грамотно вести деловую переписку. И это именно то умение, которого так не хватает многим потенциальным кандидатам на ту или иную должность.
Знания по грамматике и пунктуации могут помочь и в уже выбранной вами карьере: если в написанном вами отчете все тире, запятые и апострофы на своих местах, а глаголы — в нужной форме, то ваш начальник наверняка это заметит.
Итак, сегодня мы поговорим об английских знаках препинания, а именно о двоеточии. Этому полезному знаку препинания почему-то не везет – как ни странно, очень немногие знают, как правильно его использовать. А ведь двоеточие «упорядочивает» изложение ваших мыслей, и в результате ваш отчет или письмо гораздо легче воспринимать. Английское двоеточие сигнализирует о том, что во второй части сложного предложения появится пояснение какой-либо мысли, перечисление или цитата.
Двоеточие побуждает вас читать предложение дальше и служит своеобразным мостиком между мыслью, выраженной в начале предложения, и продолжением этой мысли, как в приведенных ниже примерах:
You are left with only one option: press on until you have mastered it.
/Вам остается только одно: продолжать, пока у вас не получится/
There is one thing you need to know about coleslaw: it looks and tastes like slurry.
/Про этот салат вам нужно знать только одно: он и по виду, и по вкусу напоминает жидкую грязь/
Главное правило, которое нужно запомнить: двоеточие появляется только в том случае, если первая часть сложного предложения автономна и вполне может существовать без продолжения. Как это выяснить? Здесь вам поможет аналогия с русским языком – ведь у нас есть похожее правило. Попробуйте мысленно вычеркнуть вторую часть предложения. Если оставшееся «начало» кажется вам неполноценным, неполным по смыслу, то двоеточие ставить ни в коем случае нельзя.
Но на этом наши проблемы с английским двоеточием не заканчиваются.
Вы наверняка видели, что иногда слово, которое следует за двоеточием, пишется с большой буквы. Как узнать, когда это необходимо, а когда – нет? Считается, что заглавная буква появляется в двух случаях: если объяснение, идущее после двоеточия, состоит из нескольких предложений, или если после двоеточия идет прямая речь.
Двоеточие, как мы уже знаем, может предварять перечисление. В этом случае нам следует быть очень осторожными, ведь многие ошибочно считают, что перед перечислением двоеточие ставится в любом случае. Однако это не так. Главное – помнить уже знакомое нам правило: начало предложения перед двоеточием должно представлять собой законченную по смыслу фразу. Сравните эти два примера:
The potion contained some exotic ingredients: snails’ eyes, bats tongues and garlic.
/В состав зелья входили некоторые экзотические ингредиенты: глаза улитки, язык летучей мыши и чеснок/
The magic potion contained sesame seeds, bran flakes and coleslaw.
/Волшебное зелье содержало семена кунжута, отруби и салат из сырой капусты/
В первом случае начало предложения содержит грамматическую основу и дополнение, поэтому его смысл понятен сам по себе (‘The potion contained some exotic ingredients.
’ /В зелье содержались некоторые экзотические ингредиенты/). Во втором случае двоеточие ставить нельзя, потому что одной грамматической основы (‘The magic potion contained’ /В зелье содержались/) недостаточно, чтобы понять смысл фразы.
И наконец, всем известный случай: двоеточие ставится перед прямой речью, как и в нашем родном языке. Однако есть и отличие: в английском языке после прямой речи сначала идет точка, и только потом – кавычки:
The director often used her favourite quotation from Monty Python: ‘I wasn’t expecting the Spanish Inquisition.’
/Директор любил повторять свою любимую фразу из передачи «Монти Питон»: «Да у вас тут прямо испанская инквизиция!»/
Теперь, когда вы знаете правила постановки двоеточия, – небольшой совет, который может помочь вам сделать ваш текст более выразительным. Сравните эти два предложения:
The one thing mankind cannot live without is hope.
/Единственная вещь, без которой человек не может прожить, это надежда/
There is one thing that mankind cannot live without: hope.
/Есть только одна вещь, без которой человек не может прожить: надежда/
С точки зрения грамматики оба эти предложения верны. Чем же они отличаются? Правильно, во втором предложении автор иначе расставляет акценты, придавая больше значимости слову ‘hope’, и это становится возможным именно благодаря двоеточию. Оно как бы говорит нам: «Притормози, задумайся над смыслом!». Таким образом, именно вы как автор текста решаете, к какой именно части фразы привлечь внимание читателя. Мы уверены, что вы сможете использовать этот полезный знак препинания с надлежащей точностью и осторожностью.
Но и злоупотреблять двоеточием не стоит, в противном случае получится иллюстрация английского выражения ‘too much of a good thing’ /не переборщи!/, как в следующем примере:
The potion contained: cheese: snails: lucozade.
/В состав зелья входили: сыр: улитки: Люкозейд/
Двоеточие в английском языке и пунктуационные ошибки в вопросах
На повестке дня пунктуация для людей пишущих.
Но, прежде чем говорить о типичных пунктуационных ошибках, связанных с постановкой вопросов, взглянем на правила использования двоеточия в английском языке. То, что следует за двоеточием, объясняет, доказывает то, что ему предшествует, или перечисляет составляющие его элементы.
Например:
«My friend used to have a lot of strange animals as pets: penguins, monkeys, wild cats, and even crocodiles.»
(Мой друг держал у себя много странных зверей: пингвинов, обезьян, диких кошек и даже крокодилов.)
«I’ll give you the definition of disappointment: downloading series of “the Game of Thrones” and finding out you have watched all of them!»
(Вот мое определение разочарования: скачать серии «Игры Престолов», чтобы узнать, что ты их всех уже смотрел!)
Выделяют четыре пунктуационные модели употребления двоеточия:
Синтактическая дедуктивная – за двоеточием следует логическое следствие, вывод или результат упомянутого перед ним факта:
“There was only one possible explanation: the train had never arrived.
” (Было только одно возможное объяснение: поезд так никогда и не прибыл.)
Синтактическая описательная – двоеточие предшествует описанию, в частности перечислению составляющих:
“I have three brothers: Bob, John, and Mortimer.” (У меня три брата: Боб, Джон и Мортимер.)
Аппозитивная – двоеточие предшествует предложению в функции приложения:
«David could not speak: He was drunk.» (Дэвид не мог говорить: он был пьян.)
Кроме того, согласно этой модели отделяются заголовок от подзаголовка, а также основное название от наименований отдельных частей: Star Wars Episode III: Revenge of the Sith.
Сегментальная – вводит прямую речь:
Patient: Doctor, doctor, I feel like a spoon.
Doctor: Sit still and don’t stir.
Итак, зачастую при постановке вопроса или необходимости обратить внимание читателя на вопрос используются совершенно ненужные знаки препинания.
Приведем несколько примеров:
1. “To pass a necessity test usually means a negative response to the question: ‘Can the same result be obtained by other means?’”
В английском языке мы можем ставить двоеточие только после предложения, которое выражает завершенную мысль. То есть это некий знак, говорящий вам «ВНИМАНИЕ! Дальше следует определение/ объяснение/ более подробное изложение идеи». Приведенное выше предложение, стоящее после [лишнего] двоеточия, таковым не является; это всего лишь вопрос. И если вы все-таки перед ним поставите двоеточие, то это будет означать, что иных вопросов в мире не существует! То есть вы определяете само слово «question» в общем, а не в данном конкретном случае.
Помимо этого данный вопрос не является чей-то цитатой. Нет, например, фразы «Smith said», которая бы стояла перед вопросом под вопросом и автоматически требовала бы двоеточие после себя. Поэтому по всем параметрам правильный вариант будет звучать так: “To pass a necessity test usually means a negative response to the question ‘Can the same result be obtained by other means?’”
2.
“There remains the question: where, if at all, should we draw the line?”
То же самое. По всей видимости, это не цитата, то есть никто не произнес этого вслух, хотя такое тоже возможно – все зависит от контекста. Вероятнее всего это негласное выражение проблемы, которую требуется решить. Поэтому два предложения следует объединить, прямиком внедрив второе в первое: “There remains the question of where, if at all, we should draw the line.”
3. “The question was how to translate and standardize these successful processes across a company that had several new divisions, a diverse global spread, and disparate technical platforms?”
В этом предложении все на первый взгляд правильно. Два предложения “The question was” и “How to translate and…” объединены согласно правилу в пункте 2. Одна проблема: предложение-то повествовательное, и вопроса как такового нет.
Вопросительный знак является лишним. Еще для пущей красоты лучше перефразировать: “The challenge was to translate and standardize these successful processes across a company that had several new divisions, a diverse global spread, and disparate technical platforms.”
Основано на статье Марка Никола: «Punctuation Errors When Posing a Question» by Mark Nichol
Ландыш ©
405 — ФОРМАТИРОВАНИЕ ПОЛЕЙ ENUM И CHRON В ЗАПИСЯХ ЭЛЕМЕНТОВ ДЛЯ МОНОГРАФИЙ
Этот документ содержит инструкции по кодированию полей ENUM и CHRON только для монографий. Для получения более подробной информации о других полях в записях товаров см. CPM-400. Инструкции по кодированию полей ENUM и CHRON для серийных номеров см. в SCARM-260.
ФОН
Для каждой единицы, связанной с фондами многотомного монографического сборника или монографии с дополнительными материалами (т. е. смешанная техника и т.
д.), требуются данные, которые отличают ее от других единиц, связанных с той же записью фондов. Эта информация имеет решающее значение для управления запасами как с точки зрения государственной службы, так и с точки зрения обслуживания коллекции. Непротиворечивое и правильное форматирование этой информации имеет важное значение как для вновь каталогизированных изделий (в целях идентификации и маркировки, с информацией, доступной в Иерархии и сводке записей о предметах), так и для изделий, уже представленных в базе данных (то, что отображается для публики через OPAC при списании товара).
При переходе в 2003 году на систему «Вояджер» информация о записях об элементах была перемещена в поля, наиболее приближенные к тому, что существовало в предыдущей системе. «Подгонка» не была идеальной, и функция соответствующих полей в «Вояджере» не всегда соответствовала цели, для которой они были предназначены. Тем не менее, акцент в этих инструкциях делается на правильном кодировании полей перечисления (ENUM) и хронологии (CHRON) во вновь созданных записях, а не на исправлении записей, которые либо были перенесены из старой системы, либо были созданы с использованием предыдущих процедур.
( Примечание : вам следует , а не следовать этим инструкциям, если вы каталогизируете аналитику a:all серийного номера или набора, а вместо этого обратитесь к процедурам для аналитики.)
ПРОЦЕДУРЫ
В OPAC поля ENUM и CHRON отображаются, если товар списан; в модуле каталогизации эти поля отображаются в сводке иерархии и записи элемента.
- ENUM: Поле перечисления для монографических единиц используется в основном для информации о томе, что означает, что это поле будет оставлено пустым для однотомных монографий.
- ХРОН: Добавить информацию о дополнительном характере предмета по отношению к основной работе.
Используйте форму(ы) термина подписи, записанную в 866 записи Holdings. См. CPM-503 для получения дополнительной информации. Для получения информации об использовании конкретных терминов заголовков и их сокращений см. CPM-590.
Если термин заголовка сокращен, не должно быть пробела между точкой в аббревиатуре и номером или буквой тома (например, pt.3). Если конкретный термин заголовка не сокращен (например, Heft), разделите термин заголовка и буквенный номер тома пробелом (например, Heft 1).
Если на материале или в поле 866 записи о запасах нет термина заголовка, добавьте общую букву «v». в поле ENUM перед номером тома.
Если вы добавляете том в набор, а в ранее созданных записях элементов используется термин заголовка, отличный от того, что есть на части, будьте последовательны и введите термин заголовка, используемый в более старых элементах.
Если для набора имеется более одного уровня нумерации, разделяйте уровни двоеточием с помощью нет пробелов по обе стороны от двоеточия, сначала перечисляя более высокий уровень (уровни) нумерации. Например, том 1, часть 2 (т. е. произведение является частью 2 тома 1 набора) указывается в поле ENUM как «v.1:pt.2».
Если издатель использует дату в качестве номера тома вместо более общего числа, добавьте дату в поле ENUM и , а не в поле CHRON. (За исключением текста, относящегося к дополнительным материалам (см. ниже), поле CHRON всегда должно быть быть пустым для записей монографических единиц.
)
Примеры различных многотомных сценариев и что нужно вводить в поле ENUM:
Простая одноуровневая нумерация с сокращенным названием термина:
т.5Простая одноуровневая нумерация с несокращенным названием термина:
Heft 16Том использует дату для нумерации вместо номера:
1984Том не имеет термина заголовка и не было ранее созданных записей элементов:
v.1Двойной уровень нумерации, оба термина заголовка сокращены:
t.56:fasc.3Двойной уровень нумерации, первый термин сокращен, второй не сокращен:
Bd.62:Heft 1Двойной уровень нумерации, первый термин без сокращений, второй сокращенный:
Heft 13:Nr.2Двойной уровень нумерации, с годом в качестве первого уровня, второй уровень сокращен:
1995: № 3Трехуровневая нумерация, все уровни сокращены:
v.3:pt.2:fasc.3
Сюда могут входить:
- Физические книги (например, приложения, указатели и т. д.)
- Непечатные материалы, являющиеся приложениями к основному монографическому произведению (CD-ROM, DVD, видеокассета и т. д.) (см. CPM-679[ссылка] для получения дополнительной информации об обработке смешанных материалов)
Примеры текста, который можно ввести в поле ХРОН для монографий:
- доп.
- индекс
- карты
- атлас
- CD-ROM
- DVD
- Видеокассета
Пример: компакт-диск, являющийся дополнением к третьему тому набора из трех томов:
ENUM: v.
3
CHRON: CD-ROM
Вернуться к содержанию CPM
последнее обновление 17 сентября 2007 г. /{клс [mot]}
полей Enum/Chron в записях элементов Voyager для серийных номеров (и составных частей)
Для: всех сотрудников технических служб
От: Джоан Сванекамп, главного библиотекаря каталогов
Дата: (15 апреля 2003 г., дата создания/5 декабря 2007 г., 9:22, дата пересмотра)
Начало апреля. 14, 2003, пожалуйста, начните следовать этим рекомендациям по записи нумерации и хронологических обозначений в записях серийных номеров. Где применимо, применимо также к составным предметам, т.е. рекомендации по использованию субтитров. ОБНОВЛЕНИЕ
(1 ноября 2005 г.). Обновления политик и процедур выделены курсивом. Весь раздел «Дополнительные примеры» является новым.
ОБНОВЛЕНИЕ (12 октября 2005 г.). Примеры сопроводительных материалов обновлены в соответствии с рекомендациями по процедурам обработки носителей. ОБНОВЛЕНИЕ
(1 декабря 2003 г.): В разделе «Повторяющиеся номера» задокументировано новое изменение процедуры. Также обратите внимание на политику для старых записей элементов в конце этого документа.
1. Запишите обозначения перечисления ТОЛЬКО в поле ENUM записи объекта Voyager. Если перечисление в MFHD включает заголовки, расшифруйте заголовок как часть перечисления. Для экономии места записывайте только заголовок части в начале диапазона, т.е. №99-105 НЕ №99-№105.
Если том с отсутствующими выпусками предназначен для привязки к одной физической части, запишите обозначение перечисления в ENUM , как если бы все выпуски были сохранены. Если том не предназначен для привязки к одной физической части, как это иногда бывает с полугодовыми выпусками, когда обе части выпускаются как отдельные связанные тома, запишите сведения о части в ENUM .
Если том с отсутствующими проблемами должен быть связан более чем с одной физической частью, запишите обозначение перечисления в ENUM как если бы все выпуски были проведены, если отсутствующие выпуски не являются первыми или последними. Обозначения частей должны отражать библиографические части (т. е. части, которые могут быть записаны в MFHD), а не физические части, представляющие локальное обязательное решение.
При необходимости запишите отсутствующие проблемы в области Произвольный текст . (См. 7. ниже)
ПРИМЕЧАНИЕ. Для LSF и любого другого места, где печать этикеток не имеет значения, детали для перечислительного обозначения могут быть записаны в соответствии с ANSI/NISO в той степени, в которой пользователь может решить, основываясь на информация в ENUM/CHRON, является ли конкретный элемент искомым.
2. Когда записи статей связаны с аналитическими библиографическими записями анализируемых монографических серий и многочастных монографий, ENUM/CHRON, относящиеся к записи обложки, не записываются.
Однако в 852 $i начните использовать заголовок с номера тома, если заголовок используется в MFHD записи обложки.
3. Записывайте хронологические обозначения ТОЛЬКО в поле ХРОН записи элемента Voyager, даже если хронологическое обозначение функционирует как перечисление. Чтобы сэкономить место, когда годы перекрываются, сокращайте второй год диапазона до десятилетия. См. Правила маркировки сериалов. Раздел: Правила выставления оценок по годам.
Если том с отсутствующими выпусками предназначен для переплета в одной физической части, запишите хронологическое обозначение в CHRON, как если бы все выпуски были сохранены.
Если том с отсутствующими выпусками должен быть переплетен более чем в одной физической части, запишите хронологическое обозначение в CHRON как если бы все выпуски удерживались, за исключением отсутствующих выпусков. первый или последний.
При необходимости запишите отсутствующие проблемы в Произвольный текст область.
(Примечания в Произвольный текст будут отображаться в представлении OPAC, если товар заряжен) записывается в соответствии с ANSI/NISO в той мере, в какой пользователь может решить на основе информации в ENUM/CHRON, является ли конкретный элемент искомым.
4. Запишите нумерацию и обозначения в хронологическом порядке в соответствующих полях, даже если в результате оба обозначения будут напечатаны под номером вызова (см. примеры ниже).
5. Если считается необходимым записать альтернативную нумерацию в ENUM, запишите обозначение альтернативной нумерации после <знака равенства><пробел>, чтобы номер располагался в строке ниже основной нумерационной схемы. Не используйте двоеточие для отделения основной нумерации от альтернативной нумерации; двоеточия должны использоваться для обозначения частей. (См. примеры маркировки)
6. Когда приложения и указатели записаны в 867 и 868 соответственно, запишите Доп.
и Указатель в CHRON, следуя хронологическому обозначению, если оно есть. Когда приложение или указатель занесены в каталог как отдельная библиографическая запись, Suppl. или Индекс должен быть записан в 852 $i, а в CHRON будет записано только хронологическое обозначение.
7. Как правило, не записывайте данные в следующих полях записи объекта Voyager: YEAR, CAPTION, FREE TEXT или SPINE.
ИСКЛЮЧЕНИЕ: Библиотека Маркса будет записывать нумерацию страниц в поле СВОБОДНЫЙ ТЕКСТ по мере необходимости.
Если используется опция БЕСПЛАТНЫЙ ТЕКСТ, имейте в виду: текст, введенный в это поле, не будет отображаться в окне поиска записей о товаре в модуле рассылки или в окне найденных товаров в модуле каталогизации. Текст не будет отображаться в поле «Статус» на дисплее OPAC, если элемент не оплачен. Однако, если посетитель нажимает «Разместить запросы» в OPAC, затем входит в систему и выбирает «Запросить поиск персонала» или «Доставку», то текст, введенный в ENUM, CHRON и Free Text, будет отображаться в новом окне в слоте «Выбрать элемент» (для сериалов).
и multipart, нужно будет пролистать список пунктов).
До тех пор, пока политики и процедуры управления каталогами для ENUM/CHRON не будут доступны в Интернете, свяжитесь с Эвой Болковац.
1. Полугодовой. Том 3 выпущен в виде 2 отдельных физических частей в переплете. Поскольку две части предназначены для раздельного хранения на полке, номер детали записывается в ENUM, даже если часть 2 отсутствует. В этом примере издатель не предоставил хронологическую информацию ниже года.
| Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | версия 3:1 | S401 .A84 v.3:1 1979 (LC) |
| ХРОН | 1979 |
2. Ежеквартально. Ano 25 связан в одной физической части; нет.
1 отсутствует. Поскольку том связан с одной физической частью, сведения о подчиненной части не записываются в ENUM, даже если подчиненные части отсутствуют. Промежутки должны быть записаны в формате MFHD и, возможно, в произвольном тексте. В целях форматирования между полным заголовком и номером тома вводится символ подчеркивания, поскольку пробел переместит номер тома на следующую строку.
| Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | ано_25 | HD1876 .A37 ano_25 1965 (ЛК) |
| ХРОН | 1965 |
Опционально , в Свободный текст : № 1 не требуется.
3. Ежемесячный (том с 12 подчиненными частями). Том. 96 состоит из 2 физических частей; нет.
1, 8 и 11 отсутствуют.
Запись позиции для первой физической детали. Обратите внимание, что числа, следующие за двоеточием, представляют собой библиографические, а не физические части. Обратите внимание, что в этом примере полное перечислительное обозначение уместится на одной строке, а полное хронологическое обозначение — нет; пробел вставляется после года, чтобы перевести диапазон месяцев на следующую строку.
| Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | v.96:№2-6 | S22 .A7 v.96:№2-6 2004: февраль-июнь (LC) |
| ХРОН | 2004: февраль-июнь |
4. Запись позиции для второй физической части. Хотя нет. 8 и 11 отсутствуют, обратите внимание, что ENUM не записан как v.
96: № 7,9-10,12. Опять же, обратите внимание, что номера деталей после двоеточия представляют собой библиографические, а не физические детали.
Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | v.96:№7-12 | S22 .A7 v.96:№7-12 2004: июль-авг. (ЛК) |
| ХРОН | 2004 г.: июль-август. |
Опционально , в Свободный текст : № 8, 11 не требуется.
5. Главное перечисление с целым числом в качестве подчиненного. Обратите внимание, что в стандартной практике серийной каталогизации, если том и порядковые номера появляются вместе в источнике, а порядковый номер функционирует как подчиненный уровень обозначения, порядковый номер рассматривается как подчиненная часть, а не как альтернативная схема нумерации.
Выходит еженедельно; 2 месяца в переплете в каждом томе. Подчеркивание вставлено в «new_ser». для предотвращения разрыва строки.
| Метка поля записи элемента | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | new_ser.II v.437: № 7047-7054 | Q1 .N37 new_ser.II v.437: № 7047-7054 2005: Июль-дек. (ЛК) |
| ХРОН | 2005 г.: июль-декабрь. |
6. Основная нумерация целым номером в качестве альтернативной нумерации (поскольку основной номер имеет собственную схему нумерации подчиненных, последовательная нумерация рассматривается как альтернативная нумерация). Принято решение записать альтернативную нумерацию в ENUM из-за практики цитирования. Ежемесячно, переплет два раза в год.
| Метка поля записи элемента | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | v.10: № 1-6 = № 121-126 | Q1 .S34 v.10:№1-6= №121-126 2005: Январь-июнь (LC) Крупногабаритный |
| ХРОН | 2005: январь-июнь |
7. Индекс записан в 868. (852 $h N11 $i .C4X (LC) $m Крупногабаритный)
| Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | v.31-55 | N11 .C4X v.31-55 1949-73 Индекс (LC) Крупногабаритный |
| ХРОН | 1949-73 Индекс |
8.
Дополнения указаны в отдельном каталоге. (852 $h HF53 $i .W612 Suppl. (LC) $m Негабарит)
| Метка поля записи товара | Значение поля записи товара | Этикетка печатается как: |
|---|---|---|
| ЕНУМ | HF53 .W612 Доп. 1970 (LC) Крупногабаритный |
Последнее изменение:
Пятница, 16 января 2015 г. — 11:27
10.2 — Перечисления без области — Изучение C++ основные типы данных и 9.1 — Введение в составные типы данных). Но этих типов не всегда достаточно для того, что мы хотим делать.
Предположим, вы пишете программу, которая должна отслеживать, является ли яблоко красным, желтым или зеленым, или какого цвета рубашка (из заданного списка цветов). Если бы были доступны только фундаментальные типы, как бы вы это сделали?
Вы можете сохранить цвет как целочисленное значение, используя какое-то неявное сопоставление (0 = красный, 1 = зеленый, 2 = синий):
Интервал основной ()
{
интервал яблочного цвета { 0 }; // мое яблоко красное
int shirtColor { 1 }; // моя рубашка зеленая
вернуть 0;
} Но это совсем не интуитивно понятно, и мы уже обсуждали, почему магические числа плохи (4.
13 — Константные переменные и символические константы). Мы можем избавиться от магических чисел, используя символические константы:
constexpr int red{ 0 };
constexpr int зеленый { 1 };
constexpr int синий { 2 };
основной ()
{
int appleColor { красный };
int shirtColor { зеленый };
вернуть 0;
} Хотя это немного лучше для чтения, программисту все еще остается сделать вывод, что appleColor и shirtColor (которые имеют тип int ) предназначены для хранения одного из значений, определенных в наборе символических цветов. константы (которые, вероятно, определены в другом месте, возможно, в отдельном файле).
Мы можем сделать эту программу более понятной, используя псевдоним типа:
using Color = int; // определяем псевдоним типа с именем Color
// Следующие значения цвета должны использоваться для Color
constexpr Цвет красный{ 0 };
constexpr Зеленый цвет { 1 };
constexpr Цвет синий{ 2 };
основной ()
{
Цвет яблокоЦвет{красный};
Цвет рубашкиЦвет { зеленый };
вернуть 0;
} Мы приближаемся.
Тот, кто читает этот код, должен понимать, что эти символические константы цвета предназначены для использования с переменными типа Color , но, по крайней мере, теперь у типа есть уникальное имя, поэтому любой, кто ищет Color , сможет найти набор связанных символьных констант.
Однако, поскольку Color является просто псевдонимом для int , у нас по-прежнему есть проблема, заключающаяся в том, что ничто не навязывает правильное использование этих символических констант цвета. Мы все еще можем сделать что-то вроде этого:
Цвет глазЦвет{ 8 }; // синтаксически допустимо, семантически бессмысленно Кроме того, если мы отладим любую из этих переменных в нашем отладчике, мы увидим только целочисленное значение цвета (например, 0 ), а не символическое значение ( красный ), что может затруднить определение правильности нашей программы.
К счастью, мы можем сделать еще лучше.
Перечисления
Перечисление (также называемое перечисляемым типом или перечислением) — это составной тип данных, в котором каждое возможное значение определяется как символическая константа (называемая перечислителем).
Поскольку перечисления являются программно-определяемыми типами 10.1 — Введение в программно-определяемые (определяемые пользователем) типы, каждое перечисление должно быть определено, прежде чем мы сможем использовать его для создания объектов с использованием этого перечисляемого типа.
C++ поддерживает два типа перечислений: перечисления без области (которые мы рассмотрим сейчас) и перечисления с областью действия (которые мы рассмотрим позже в этой главе).
Перечисления без области
Перечисления без области определяются с помощью ключевого слова enum .
Перечисленные типы лучше всего изучать на примере, поэтому давайте определим перечисление без области, которое может содержать некоторые значения цвета. Мы объясним, как все это работает ниже.
// Определить новое перечисление без области с именем Color
перечисление Цвет
{
// Вот перечислители
// Эти символические константы определяют все возможные значения, которые может содержать этот тип
// Каждый перечислитель отделяется запятой, а не точкой с запятой
красный,
зеленый,
синий, // запятая в конце необязательна, но рекомендуется
}; // определение перечисления должно заканчиваться точкой с запятой
основной ()
{
// Определяем несколько переменных перечислимого типа Color
Цветное яблоко {красное}; // мое яблоко красное
Цвет рубашки {зеленый}; // моя рубашка зеленая
Цвет чашки {синий}; // моя чашка синяя
Цвет носков {белый}; // ошибка: белый не является перечислителем цвета
Цветная шапка {2}; // ошибка: 2 не является перечислителем цвета
вернуть 0;
} Мы начинаем наш пример с использования ключевого слова enum , чтобы сообщить компилятору, что мы определяем перечисление без области действия, которое мы назвали Color .
Внутри пары фигурных скобок мы определяем перечислители для типа Color : red , green и blue . Эти перечислители определяют набор возможных значений, которые могут содержать объекты типа Color . Каждый перечислитель должен быть разделен запятой (не точкой с запятой) — замыкающая запятая после последнего перечислителя не обязательна, но рекомендуется для согласованности.
Определение типа для Color заканчивается точкой с запятой. Теперь мы полностью определили, что такое перечисляемый тип Color !
Внутри main() мы инстанцируем три переменные типа Color : apple инициализируется цветом red , shirt инициализируется цветом green , а 1 cup 9059 инициализируется цветом green , цвет синий . Для каждого из этих объектов выделяется память. Обратите внимание, что инициализатор для перечисляемого типа должен быть одним из определенных перечислителей для этого типа.
Переменные socks и hat вызывают ошибки компиляции, поскольку инициализаторы white и 2 не являются перечислителями Color .
A reminder
To quickly recap on nomenclature:
- An enumeration or enumerated type is the program-defined type itself (e.g.
Color) - An enumerator is a symbolic constant that is a возможное значение для данного перечисления (например,
красный)
Именование перечислений и перечислителей
По соглашению имена перечисляемых типов начинаются с заглавной буквы (как и все программно-определяемые типы).
Предупреждение
Перечисления не обязательно должны быть именованными, но в современном C++ следует избегать безымянных перечислений.
Счетчикам должны быть даны имена. К сожалению, для имен перечислителей не существует общего соглашения об именах.
Общие варианты включают начало со строчной буквы (например, красный), начало с заглавных букв (красный), все заглавные буквы (КРАСНЫЙ), все заглавные буквы с префиксом (COLOR_RED) или с префиксом «k» и заглавными буквами (kColorRed).
В современных руководствах по C++ обычно рекомендуется избегать соглашений об именовании всех заглавных букв, поскольку все заглавные буквы обычно используются для макросов препроцессора и могут конфликтовать. Мы также рекомендуем избегать соглашений, начинающихся с заглавной буквы, поскольку имена, начинающиеся с заглавной буквы, обычно зарезервированы для программно-определяемых типов.
Передовая практика
Назовите перечисленные типы, начиная с заглавной буквы. Назовите свои счетчики, начинающиеся со строчной буквы.
Перечисленные типы являются отдельными типами
Каждый создаваемый вами перечисляемый тип считается отдельным типом, что означает, что компилятор может отличить его от других типов (в отличие от определений типов или псевдонимов типов, которые считаются неотличимыми от типов, для которых они являются псевдонимами).
Поскольку перечисляемые типы различны, перечислители, определенные как часть одного перечисляемого типа, не могут использоваться с объектами другого перечисляемого типа:
enum Pet
{
кошка,
собака,
свинья,
кит,
};
перечисление Цвет
{
черный,
красный,
синий,
};
основной ()
{
Pet myPet {черный}; // ошибка компиляции: черный цвет не является перечислителем Pet
Цвет рубашки {свинья}; // ошибка компиляции: pig не является перечислителем Color
вернуть 0;
} Вы, наверное, все равно не хотели рубашку со свиньей.
Использование перечислений
Поскольку перечислители носят описательный характер, они полезны для улучшения документации кода и повышения его читабельности. Перечислимые типы лучше всего использовать, когда у вас есть небольшой набор связанных констант, а объектам нужно хранить только одно из этих значений за раз.
Обычно определяемые перечисления включают дни недели, стороны света и масти в колоде карт:
enum DaysOfWeek
{
Воскресенье,
понедельник,
вторник,
среда,
Четверг,
пятница,
суббота,
};
перечисление CardinalDirections
{
к северу,
восток,
юг,
запад,
};
перечисление CardSuits
{
клубы,
бриллианты,
сердца,
лопаты,
}; Иногда функции возвращают вызывающей стороне код состояния, чтобы указать, успешно ли выполнена функция или возникла ошибка.
Традиционно небольшие отрицательные числа использовались для представления различных возможных кодов ошибок. Например:
int readFileContents()
{
если (!открытьФайл())
возврат -1;
если (!ПрочитатьФайл())
возврат -2;
если (!parseFile())
возврат -3;
вернуть 0; // успех
} Однако такое использование магических чисел не очень информативно. Лучшим методом было бы использование перечисляемого типа:
перечисление FileReadResult
{
чтениеРезультатУспех,
чтениеРезультатОшибкаФайлОткрыть,
readResultErrorFileRead,
readResultErrorFileParse,
};
FileReadResult readFileContents()
{
если (!открытьФайл())
вернуть readResultErrorFileOpen;
если (!ПрочитатьФайл())
вернуть readResultErrorFileRead;
если (!parseFile())
вернуть readResultErrorFileParse;
вернуть readResultSuccess;
} Затем вызывающая сторона может проверить возвращаемое функцией значение с помощью соответствующего перечислителя, что проще для понимания, чем проверка возвращаемого результата для определенного целочисленного значения.
если (readFileContents() == readResultSuccess)
{
// сделай что-нибудь
}
еще
{
// вывести сообщение об ошибке
} Перечисленные типы также можно хорошо использовать в играх для идентификации различных типов предметов, монстров или типов местности. По сути, все, что представляет собой небольшой набор связанных объектов.
Например:
enum ItemType
{
меч,
факел,
зелье,
};
основной ()
{
Тип предмета холдинг { факел };
вернуть 0;
} Перечислимые типы также могут использоваться в качестве полезных параметров функций, когда пользователю нужно сделать выбор между двумя или более вариантами:
перечисление SortOrder
{
алфавитный,
алфавитныйОбратный,
числовой,
};
void sortData (порядок сортировки)
{
если (порядок == в алфавитном порядке)
// сортируем данные в прямом алфавитном порядке
иначе если (порядок == AlphabeticalReverse)
// сортируем данные в обратном алфавитном порядке
иначе если (порядок == числовой)
// сортируем данные по числам
} Многие языки используют перечисления для определения логических значений — в конце концов, логическое значение — это просто перечисление с двумя перечислителями: ложь и правда ! Однако в C++ true и false определяются как ключевые слова, а не перечислители.
Область действия перечислений без области действия
Перечисления без области действия названы так, поскольку они помещают свои имена перечислителей в ту же область действия, что и само определение перечисления (в отличие от создания новой области области действия, как это делает пространство имен).
Например, для этой программы:
перечисление Цвет // это перечисление определено в глобальном пространстве имен
{
красный, // поэтому красный помещается в глобальное пространство имен
зеленый,
синий,
};
основной ()
{
Цветное яблоко {красное}; // мое яблоко красное
вернуть 0;
} Перечисление Color определено в глобальной области. Поэтому все имена перечислений ( red , green и blue ) также попадают в глобальную область видимости. Это загрязняет глобальную область видимости и значительно повышает вероятность коллизий имен.
Одним из следствий этого является то, что имя перечислителя нельзя использовать в нескольких перечислениях в одной и той же области:
перечисление Цвет
{
красный,
зеленый,
синий, // синий помещается в глобальное пространство имен
};
перечисление чувство
{
счастливый,
устала,
синий, // ошибка: коллизия имен с вышеуказанным синим
};
основной ()
{
Цветное яблоко {красное}; // мое яблоко красное
Чувствую себя {счастливой}; // Сейчас я счастлив (хотя моя программа не компилируется)
вернуть 0;
} В приведенном выше примере оба перечисления без области ( Color и Feeling ) помещают перечислители с одинаковым именем blue в глобальную область.
Это приводит к конфликту имен и последующей ошибке компиляции.
Перечисления без области действия также предоставляют именованную область области для своих перечислителей (так же, как пространство имен действует как именованная область области действия для имен, объявленных внутри). Это означает, что мы можем получить доступ к перечислителям перечисления с незаданной областью следующим образом:
перечисление Цвет
{
красный,
зеленый,
синий, // синий помещается в глобальное пространство имен
};
основной ()
{
Цветное яблоко {красное}; // хорошо, доступ к перечислителю из глобального пространства имен
Цвет малиновый { Color::red }; // тоже нормально, доступ к перечислителю из области видимости Color
вернуть 0;
} Чаще всего доступ к перечислителям без области действия осуществляется без использования оператора разрешения области.
Предотвращение конфликтов имен перечислителей
Существует довольно много распространенных способов предотвращения конфликтов имен перечислителей без области действия.
Одним из вариантов является префикс каждого перечислителя с именем самого перечисления:
перечисление Цвет
{
красный цвет,
цвет синий,
цвет_зеленый,
};
перечисление чувство
{
чувство_счастливый,
чувство усталости,
feel_blue, // больше не имеет коллизии имен с color_blue
};
основной ()
{
Цвет краски {color_blue};
Чувствую меня { feel_blue };
вернуть 0;
} Это по-прежнему загрязняет пространство имен, но снижает вероятность конфликтов имен, делая имена более длинными и уникальными.
Лучший вариант — поместить перечисляемый тип внутрь чего-то, что обеспечивает отдельную область видимости, например пространство имен:
цвет пространства имен
{
// Имена Color, red, blue и green определены внутри пространства имен color
перечисление Цвет
{
красный,
зеленый,
синий,
};
}
чувство пространства имен
{
перечисление чувство
{
счастливый,
устала,
blue, // feel::blue не конфликтует с color::blue
};
}
основной ()
{
color::Color paint { color::blue };
чувствую::Чувствую меня { чувствую::синий };
вернуть 0;
} Это означает, что теперь мы должны добавлять префикс к именам нашего перечисления и перечислителя с именем области действия.
Для опытных читателей
Классы также предоставляют область области действия, и принято помещать перечисляемые типы, связанные с классом, в область области действия класса. Мы обсудим это в уроке 13.17 — Вложенные типы в классах.
Связанный вариант — использовать перечисление с областью действия (которое определяет собственную область области действия). Вскоре мы обсудим перечисления с областью видимости (10.4 — Перечисления с областью действия (классы перечислений)).
Передовая практика
Предпочитайте размещать свои перечисления внутри именованной области видимости (такой как пространство имен или класс), чтобы перечислители не загрязняли глобальное пространство имен.
Сравнение с перечислителями
Мы можем использовать операторы равенства ( operator== и operator!= ), чтобы проверить, имеет ли перечисление значение конкретного перечислителя или нет.
#includeперечисление Цвет { красный, зеленый, синий, }; основной () { Цвет рубашки { синий }; if (shirt == blue) // если рубашка синяя std::cout << "Твоя рубашка синяя!"; еще std::cout << "Твоя рубашка не синяя!"; вернуть 0; }
В приведенном выше примере мы используем оператор if, чтобы проверить, равно ли shirt перечислителю blue .
Это дает нам способ обусловить поведение нашей программы в зависимости от того, какой перечислитель содержится в нашем перечислении.
В следующем уроке мы будем использовать это подробнее.
Время викторины
Вопрос №1
Определите перечисляемый тип с именем MonsterType, чтобы выбирать между следующими расами монстров: орки, гоблины, тролли, огры и скелеты.
Показать решение
Вопрос № 2
Поместите перечисление MonsterType в пространство имен. Затем создайте функцию main() и создайте экземпляр тролля. Программа должна компилироваться.
Показать решение
Проверить значения свойств - MATLAB & Simulink
Проверка значений свойств
Проверка свойств в определениях классов
Проверка свойств MATLAB ® позволяет накладывать определенные ограничения на значения свойств. Вы можете использовать проверку, чтобы ограничить класс и размер значений свойств. Кроме того, вы можете использовать функции для установления критериев, которым должно соответствовать значение свойства.
MATLAB определяет набор функций проверки, и вы можете написать свои собственные функции проверки.
Использование проверки свойств в определениях классов является необязательным.
Дополнительная информация о проверке свойств
Дополнительные сведения о проверке свойств см. в разделе Проверка класса и размера свойства, Функции проверки свойств и Интерфейс метаданных для проверки свойств.
Синтаксис проверки
Выделенная область в следующем коде показывает синтаксис проверки свойства.
Проверка свойств включает любое из следующего:
Размер — длина каждого измерения в виде положительного целого числа или двоеточия. Двоеточие указывает, что в этом измерении разрешена любая длина. Значение, присвоенное свойству, должно соответствовать указанному размеру или быть совместимым с указанным размером. Дополнительные сведения см. в разделе Проверка размера свойства.
Класс — Имя одного класса MATLAB. Значение, присвоенное свойству, должно относиться к указанному классу или быть конвертируемым в указанный класс.
Используйте любой класс MATLAB или класс, определенный извне, который поддерживается MATLAB, за исключением Java 9.0878 ® и COM-классы. Дополнительные сведения см. в разделе Проверка класса свойств.Функции — список имен функций проверки, разделенных запятыми. MATLAB передает значение, присвоенное свойству, каждой функции проверки после применения любых возможных преобразований класса и размера. Функции проверки выдают ошибки, если проверка не пройдена, но не возвращают значения. Дополнительные сведения см. в разделе Функции проверки свойств.
Список функций проверки MATLAB см. в разделе Функции проверки свойств.
Использование проверки свойств
Используйте проверку свойств для общедоступных свойств, чтобы управлять значениями, которые пользовательский код присваивает свойствам.
Если вы хотите ограничить значения свойств фиксированным набором идентификаторов, создайте класс перечисления для этих идентификаторов и ограничьте свойство этим классом.
Сведения о классах перечисления см. в разделе Определение классов перечисления.
Правила преобразования типов MATLAB применяются к проверке свойств. Например, MATLAB может выполнять принудительное преобразование от одного числового типа к другому. Таким образом, ограничение значения свойства определенным числовым типом, например double, не препятствует присвоению свойству других числовых типов.
Чтобы гарантировать, что свойству может быть назначен только определенный тип значения, ограничьте свойство типом, который поддерживает только желаемые преобразования типов, или используйте функцию проверки, чтобы указать точный класс, разрешенный для свойства, вместо указания типа свойства. . MATLAB оценивает спецификацию типа перед выполнением любых функций проверки. Дополнительные сведения см. в разделе Порядок проверки.
Укажите действительное значение по умолчанию
Убедитесь, что любое значение по умолчанию, назначенное свойству, соответствует ограничениям, налагаемым указанной проверкой.
Если вы не задаете значение по умолчанию, MATLAB создает значение по умолчанию, назначая пустой объект указанного класса или вызывая конструктор по умолчанию, если ограничение размера не позволяет использовать пустое значение по умолчанию. Конструктор по умолчанию должен возвращать объект правильного размера.
Пример класса, использующего проверку свойств
Класс ValidateProps определяет три свойства с проверкой.
classdef ValidateProps
характеристики
Расположение (1,3) двойное {mustBeReal, mustBeFinite}
Label(1,:) char {mustBeMember(Label,{'Высокий','Средний','Низкий'})} = 'Низкий'
Состояние(1,1) matlab.lang.OnOffSwitchState
конец
end Местоположениедолжно быть массивом 1 на 3 классаdouble, значения которого являются действительными конечными числами.Меткадолжна быть векторомсимволов, который может быть либо'Высокий','Средний', либо'Низкий'.
Состояниедолжно быть членом перечисления классаmatlab.lang.OnOffSwitchState(отилипо).
Проверка при создании экземпляра
Создание объекта класса ValidateProps выполняет проверку неявных и явных значений по умолчанию:
а = ValidateProps
а =
ValidateProps со свойствами:
Местоположение: [0 0 0]
Этикетка: «Низкий»
Состояние: выключено При создании объекта MATLAB:
Инициализирует значение свойства
Locationдо[0 0 0], чтобы удовлетворить требования к размеру и классу.Устанавливает для свойства
Labelзначение по умолчанию,'Low'. Значение по умолчанию должно быть членом допустимого набора значений. Пустойcharнеявное значение по умолчанию вызовет ошибку.Задает для свойства
Stateчлен перечисленияoff, определенный классом matlab.
lang.OnOffSwitchState .
Для получения информации о том, как MATLAB выбирает значения по умолчанию, смотрите Значения по умолчанию для Размера и Класса.
Порядок проверки
Когда свойству присваивается значение, включая значения по умолчанию, указанные в определении класса, MATLAB выполняет проверку в следующем порядке:
Проверка класса — эта проверка может привести к преобразованию в другой класс, например преобразование
charвстрока. Присвоение свойств следует правилам преобразования MATLAB для массивов.Проверка размера — эта проверка может вызвать преобразование размера, например скалярное расширение или преобразование вектора-столбца в вектор-строку. Присвоение свойству, которое задает проверку размера, ведет себя так же, как присвоение любому массиву MATLAB. Сведения об индексированном назначении см. в разделе Индексирование массива.

Функции проверки — MATLAB передает результат проверки класса и размера каждой функции проверки в порядке слева направо. Ошибка может возникнуть до того, как будут вызваны все функции проверки, что завершает процесс проверки.
Метод Set — MATLAB выполняет проверку свойств перед вызовом метода набора свойств, если он определен для этого свойства. Присвоение свойства в наборе свойств или методе get не применяет проверку повторно. Часто вы можете заменить методы набора свойств, используя проверку свойств.
Ошибки проверки свойств
Класс ValueProp использует проверку размера, класса и функции, чтобы гарантировать, что присвоение свойству Value является двойным скаляром, который не является отрицательным.
определение класса ValueProp
характеристики
Значение (1,1) двойное {mustBeNonegative} = 0
конец
end Этот оператор пытается присвоить свойству массив ячеек. Это присвоение нарушает проверку класса.
а. Значение = {10,20}; Ошибка установки свойства 'Value' класса 'ValueProp': Недопустимый тип данных. Значение должно быть двойным или конвертироваться в двойное.
Этот оператор пытается присвоить свойству двойной массив 1 на 2. Это присвоение нарушает проверку размера.
а. Значение = [10 20];
Ошибка установки свойства 'Value' класса 'ValueProp': Размер значения должен быть скалярным.
Этот оператор пытается присвоить свойству скалярный двойник. Это присвоение не проходит проверку функции, для которой требуется неотрицательное число.
а. Значение = -10;
Ошибка установки свойства 'Value' класса 'ValueProp': Значение должно быть неотрицательным.
Процесс проверки завершается при обнаружении первой ошибки.
Проверка абстрактных свойств
Вы можете определить проверку свойств для абстрактных свойств. Проверка применяется ко всем подклассам, реализующим свойство. Однако подклассы не могут использовать какую-либо проверку своей реализации свойства.
При наследовании проверки свойства от нескольких классов только одно абстрактное свойство в одном суперклассе может определить проверку. Ни один из суперклассов не может определить свойство как неабстрактное.
Объекты не обновляются при изменении проверки
Если вы изменяете проверку свойства, в то время как объекты класса существуют, MATLAB не пытается применить новую проверку к существующим значениям свойств. Однако MATLAB действительно применяет новую проверку, когда вы делаете назначения свойствам существующих объектов.
Проверка во время операции загрузки
При сохранении объекта в файл MAT MATLAB сохраняет все значения свойств не по умолчанию с объектом. При загрузке объекта MATLAB восстанавливает значения этих свойств во вновь созданном объекте.
Если определение класса изменяет проверку свойства таким образом, что загруженное значение свойства больше не является действительным, MATLAB заменяет текущее определенное значение по умолчанию для этого свойства.
Однако функция загрузки подавляет ошибки проверки, возникающие перед назначением значения по умолчанию из текущего определения класса. Таким образом, ошибки проверки молча игнорируются во время операций загрузки.
Чтобы проиллюстрировать это поведение, в этом примере создается, сохраняется и загружается объект МесяцТемп класс. Этот класс ограничивает свойство AveTemp массивом ячеек.
classdef MonthTemp
характеристики
Ячейка AveTemp
конец
end Создайте объект MonthTemp и присвойте значение свойству AveTemp .
а = месячная температура;
a.AveTemp = {'Май',70}; Сохраните объект с помощью save .
сохранить TemperatureFile a
Отредактируйте определение свойства, чтобы изменить класс проверки для Свойство AveTemp из массива ячеек в контейнеры . Карта .
classdef MonthTemp
характеристики
Контейнеры AveTemp.
Карта
конец
end Загрузите сохраненный объект с новым определением класса на пути MATLAB. MATLAB не может присвоить сохраненное значение свойству AveTemp , потому что массив ячеек {'May',70} несовместим с текущим требованием, чтобы значение свойства было объектом container.Map . MATLAB не может преобразовать массив ячеек в контейнеров.Карта .
Чтобы устранить несовместимость, MATLAB устанавливает свойство AveTemp загруженного объекта на текущее значение по умолчанию, которое является пустым объектом container.Map .
загрузить TemperatureFile a
a.AveTemp
ответ =
Карта со свойствами:
Количество: 0
Тип ключа: символ
Тип значения: любой
Загруженный объект имеет другое значение, присвоенное свойству AveTemp , так как сохраненное значение теперь недействительно. Однако процесс загрузки подавляет ошибку проверки.
Чтобы предотвратить потерю данных при изменении определений классов и перезагрузке объектов, реализуйте метод loadobj или метод преобразователя классов, который позволяет сохраненным значениям удовлетворять текущей проверке свойства.
Дополнительные сведения о сохранении и загрузке объектов см. в разделе Процесс сохранения и загрузки объектов.
См. также
- Проверка класса и размера свойства
- Функции проверки свойства
Вы щелкнули ссылку, соответствующую этой команде MATLAB:
Запустите команду, введя ее в командном окне MATLAB. Веб-браузеры не поддерживают команды MATLAB.
Выберите веб-сайт, чтобы получить переведенный контент, где он доступен, и ознакомиться с местными событиями и предложениями. В зависимости от вашего местоположения мы рекомендуем вам выбрать: .
Вы также можете выбрать веб-сайт из следующего списка:
Европа
Обратитесь в местный офис
Упрощение цикла с помощью счетчиков — Real Python
Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python. Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Зацикливание с помощью Python enumerate()
В Python цикл для обычно записывается как цикл над итерируемым объектом.
Это означает, что вам не нужна счетная переменная для доступа к элементам в итерируемом объекте. Однако иногда вы хотите иметь переменную, которая изменяется при каждой итерации цикла. Вместо того, чтобы создавать и увеличивать переменную самостоятельно, вы можете использовать Python 9.0159 enumerate() , чтобы одновременно получить счетчик и значение из итерации!
В этом руководстве вы узнаете, как:
- Использовать
enumerate()для получения счетчика в цикле - Применить
enumerate()до отображать количество элементов - Использовать
enumerate()с условными операторами - Реализуйте свою собственную эквивалентную функцию до
перечислить() - Распаковать значения , возвращенные
enumerate()
Начнем!
Повторение с
для циклов в Python Цикл for в Python использует итерацию на основе коллекции .
Это означает, что Python присваивает следующий элемент из итерации переменной цикла на каждой итерации, как в этом примере:
>>>
>>> значения = ["a", "b", "c"] >>> для значения в значениях: ... печать (значение) ... а б с
В этом примере значений — это список из трех строк: «a» , «b» и «c» . В Python списки — это один из типов итерируемых объектов. В цикле for переменная цикла имеет значение . На каждой итерации цикла значение устанавливается на следующий элемент из значений .
Затем вы печатаете значение на экране. Преимущество итерации на основе коллекций состоит в том, что она помогает избежать ошибки «не на единицу», характерной для других языков программирования.
Теперь представьте, что помимо самого значения вы хотите на каждой итерации выводить на экран индекс элемента списка.
Один из способов решения этой задачи — создать переменную для хранения индекса и обновлять его на каждой итерации:
>>>
>>> индекс = 0 >>> для значения в значениях: ... печать (индекс, значение) ... индекс += 1 ... 0 а 1 б 2 с
В этом примере индекс — это целое число, которое отслеживает, насколько далеко вы находитесь в списке. На каждой итерации цикла вы печатаете индекс , а также значение . Последним шагом в цикле является обновление числа, хранящегося в индексе , на единицу. Распространенная ошибка возникает, когда вы забываете обновить индекс на каждой итерации:
>>>
>>> индекс = 0 >>> для значения в значениях: ... печать (индекс, значение) ... 0 а 0 б 0 с
В этом примере индекс остается равным 0 на каждой итерации, потому что нет кода для обновления его значения в конце цикла.
В частности, для длинных или сложных циклов этот тип ошибки, как известно, трудно отследить.
Другим распространенным способом решения этой проблемы является использование range() в сочетании с len() для автоматического создания индекса. Таким образом, вам не нужно помнить об обновлении индекса:
>>>
>>> для индекса в диапазоне (длина (значения)): ... значение = значения [индекс] ... печать (индекс, значение) ... 0 а 1 б 2 с
В этом примере len(values) возвращает длину значений , которая равна 3 . Затем range() создает итератор, работающий от начального значения по умолчанию 0 , пока не достигнет len(values) минус один. В этом случае индекс становится вашей переменной цикла. В цикле вы устанавливаете значение равным элементу значений при текущем значении индекса .
Наконец, вы печатаете индекс и значение .
В этом примере может возникнуть одна распространенная ошибка, когда вы забываете обновить значение в начале каждой итерации. Это похоже на предыдущую ошибку, связанную с забыванием обновить индекс. Это одна из причин, по которой этот цикл не считается Pythonic.
Этот пример также несколько ограничен, поскольку значений должен разрешать доступ к своим элементам с использованием целочисленных индексов. Итерации, которые разрешают такой доступ, называются последовательностями в Python.
Техническая информация: Согласно документации Python, iterable — это любой объект, который может возвращать свои члены по одному. По определению, итерации поддерживают протокол итератора, который указывает, как члены объекта возвращаются, когда объект используется в итераторе. Python имеет два часто используемых типа итерируемых объектов:
- Последовательности
- Генераторы
В цикле for можно использовать любой итерируемый объект, но только последовательности могут быть доступны по целочисленным индексам.
Попытка доступа к элементам по индексу из генератора или итератора вызовет ошибку 9.0590 TypeError :
>>>
>>> перечисление = перечисление (значения) >>> перечисление[0] Traceback (последний последний вызов): Файл "", строка 1, в TypeError: объект 'enumerate' не подлежит подписке
В этом примере вы присваиваете возвращаемое значение enumerate() enum . enumerate() является итератором, поэтому попытка доступа к его значениям по индексу вызывает TypeError .
К счастью, Python enumerate() позволяет избежать всех этих проблем. Это встроенная функция , что означает, что она была доступна в каждой версии Python с тех пор, как была добавлена в Python 2.3 еще в 2003 году.
Удаление рекламы
Использование Python
enumerate() Вы можете использовать enumerate() в цикле почти так же, как вы используете исходный итерируемый объект.
Вместо того, чтобы помещать итерацию сразу после в в для цикла , вы помещаете его в круглые скобки enumerate() . Вы также должны немного изменить переменную цикла, как показано в этом примере:
>>>
>>> для количества, значение в перечислении (значения): ... печать (количество, значение) ... 0 а 1 б 2 с
Когда вы используете enumerate() , функция возвращает вам две переменные цикла :
- Количество текущей итерации
- значение элемента на текущей итерации
Как и в обычном цикле для , переменные цикла могут называться так, как вы хотите. В этом примере вы используете count и value , но они могут называться i и v или любыми другими допустимыми именами Python.
С enumerate() вам не нужно помнить о доступе к элементу из итерируемого объекта, и вам не нужно помнить о перемещении индекса в конце цикла.
Все автоматически обрабатывается за вас с помощью магии Python!
Технические сведения: Использование двух переменных цикла, count и value , разделенных запятой, является примером распаковки аргумента. Эта мощная функция Python будет обсуждаться чуть позже в этой статье.
Python enumerate() имеет один дополнительный аргумент, который можно использовать для управления начальным значением счетчика. По умолчанию начальное значение равно 0 , потому что типы последовательностей Python индексируются, начиная с нуля. Другими словами, когда вы хотите получить первый элемент списка, вы используете индекс 9.0590 0 :
>>>
>>> печать (значения [0]) а
В этом примере вы можете видеть, что доступ к значениям с индексом 0 дает первый элемент, a . Однако во многих случаях вы можете не захотеть, чтобы счет от enumerate() начинался с 0 .
Например, вы можете захотеть напечатать натуральное счетное число в качестве вывода для пользователя. В этом случае можно использовать start аргумент для enumerate() для изменения начального количества:
>>>
>>> для количества, значение в перечислении (значения, начало = 1): ... печать (количество, значение) ... 1 год 2 б 3 с
В этом примере вы передаете start=1 , что запускает count со значением 1 на первой итерации цикла. Сравните это с предыдущими примерами, в которых начало имело значение по умолчанию 0 , и посмотрите, сможете ли вы заметить разницу.
Практика с Python
enumerate() Вы должны использовать enumerate() каждый раз, когда вам нужно использовать счетчик и элемент в цикле. Имейте в виду, что enumerate() увеличивает счетчик на единицу на каждой итерации.
Однако это лишь немного ограничивает вашу гибкость. Поскольку счетчик является стандартным целым числом Python, вы можете использовать его по-разному. В следующих нескольких разделах вы увидите некоторые варианты использования enumerate() .
Естественное количество итерируемых элементов
В предыдущем разделе вы видели, как использовать enumerate() с start , чтобы создать натуральное счетное число для печати для пользователя. enumerate() также используется в кодовой базе Python. Вы можете увидеть один пример в скрипте, который читает файлы reST и сообщает пользователю о проблемах с форматированием.
Примечание. reST, также известный как reStructured Text, — это стандартный формат текстовых файлов, который Python использует для документации. Вы часто будете видеть строки в формате reST, включенные в качестве строк документации в классы и функции Python. Скрипты, которые читают файлы исходного кода и сообщают пользователю о проблемах с форматированием, называются linters , потому что они ищут метафорический lint в коде.
Этот пример немного изменен по сравнению с rstlint.py . Не беспокойтесь слишком сильно о том, как эта функция проверяет наличие проблем. Смысл в том, чтобы показать реальное использование enumerate() :
1def check_whitespace(строки):
2 """Проверьте наличие пробелов и длины строки."""
3 для lno, строка в перечислении (строки):
4 если "\r" в строке:
5 дают lno+1, "\\r в строке"
6 если "\t" в строке:
7 yield lno+1, "ОМГ ВКЛАДКИ!!!1"
8 если строка[:-1].rstrip(" \t") != строка[:-1]:
9yield lno+1, "конечный пробел"
check_whitespace() принимает один аргумент, строк , это строки файла, которые должны быть оценены. В третьей строке check_whitespace() , enumerate() используется в цикле по строкам . Это возвращает номер строки, сокращенно lno , и строку . Поскольку start не используется, lno является отсчитываемым от нуля счетчиком строк в файле.
check_whitespace() затем выполняет несколько проверок на наличие неуместных символов:
- Возврат каретки (
\r) - Символ табуляции (
\t) - Любые пробелы или табуляции в конце строки
Когда присутствует один из этих элементов, check_whitespace() возвращает номер текущей строки и полезное сообщение для пользователя. К переменной count lno добавлено 1 , так что она возвращает номер строки подсчета, а не индекс, начинающийся с нуля. Когда пользователь rstlint.py прочитает сообщение, они будут знать, на какую строку перейти и что исправить.
Удалить рекламу
Условные операторы для пропуска элементов
Использование условных операторов для обработки элементов может быть очень мощным приемом. Иногда вам может понадобиться выполнить действие только на самой первой итерации цикла, как в этом примере:
.
>>>
>>> users = ["Тестовый пользователь", "Реальный пользователь 1", "Реальный пользователь 2"]
>>> для индекса пользователь в перечислении (пользователи):
... если индекс == 0:
... print("Дополнительный подробный вывод для:", пользователя)
... печать (пользователь)
...
Дополнительный подробный вывод для: тестового пользователя
Реальный пользователь 1
Реальный пользователь 2
В этом примере вы используете список как фиктивную базу данных пользователей. Первый пользователь — это ваш тестовый пользователь, поэтому вы хотите распечатать дополнительную диагностическую информацию об этом пользователе. Поскольку вы настроили свою систему так, чтобы тестовый пользователь был первым, вы можете использовать первое значение индекса цикла для вывода дополнительных подробных выходных данных.
Вы также можете комбинировать математические операции с условиями для подсчета или индекса. Например, вам может понадобиться вернуть элементы из итерации, но только если они имеют четный индекс.
Вы можете сделать это, используя перечислить() :
>>>
>>> определение четных_элементов (итерируемых): ... """Возвращать элементы из ``iterable``, когда их индекс четный.""" ... значения = [] ... для индекса, значение в enumerate(iterable, start=1): ... если не индекс % 2: ... значения.добавлять(значение) ... возвращаемые значения ...
even_items() принимает один аргумент, называемый iterable , это должен быть некоторый тип объекта, который Python может перебирать в цикле. Первый, значений инициализируется пустым списком. Затем вы создаете цикл for по итерируемому с enumerate() и устанавливаете start=1 .
В цикле по вы проверяете, равен ли остаток от деления индекса на 2 ноль. Если это так, вы добавляете элемент к значениям . Наконец, вы возвращаете значений .
Вы можете сделать код более питоническим, используя понимание списка, чтобы делать то же самое в одной строке, не инициализируя пустой список:
>>>
>>> определение четных_элементов (итерируемых): ... вернуть [v для i, v в enumerate(iterable, start=1), если не i% 2] ...
В этом примере кода even_items() использует понимание списка, а не цикл for для извлечения каждого элемента из списка, индекс которого является четным числом.
Вы можете убедиться, что even_items() работает должным образом, получив элементы с четным индексом из диапазона целых чисел от 1 9с 0591 по 10 . Результат будет [2, 4, 6, 8, 10] :
>>>
>>> последовательность = список (диапазон (1, 11)) >>> печать (последовательность) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> четные_элементы (последовательность) [2, 4, 6, 8, 10]
Как и ожидалось, even_items() возвращает элементы с четным индексом из seq .
Это не самый эффективный способ получить четные числа, когда вы работаете с целыми числами. Однако теперь, когда вы убедились, что even_items() работает правильно, вы можете получить четные буквы алфавита ASCII:
>>>
>>> алфавит = "abcdefghijklmnopqrstuvwxyz" >>> четные_элементы(алфавит) ['b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', ' г']
Alphabet — это строка, содержащая все двадцать шесть строчных букв алфавита ASCII. Вызов even_items() и передача алфавита возвращает список чередующихся букв алфавита.
Строки Python — это последовательности, которые можно использовать в циклах, а также при целочисленной индексации и нарезке. Таким образом, в случае строк вы можете использовать квадратные скобки для достижения той же функциональности, что и even_items() более эффективно:
>>>
>>> список(алфавит[1::2]) ['b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', ' г']
Используя здесь нарезку строки, вы задаете начальный индекс 1 , который соответствует второму элементу.
После первого двоеточия нет конечного индекса, поэтому Python переходит к концу строки. Затем вы добавляете второе двоеточие, за которым следует 2 , чтобы Python принимал все остальные элементы.
Однако, как вы видели ранее, генераторы и итераторы нельзя индексировать или нарезать, поэтому вы все равно найдете enumerate() полезным. Чтобы продолжить предыдущий пример, вы можете создать функцию-генератор, которая выдает буквы алфавита по запросу:
>>>
>>> по алфавиту(): ... альфа = "abcdefghijklmnopqrstuvwxyz" ... для альфа: ... дать >>> алфавит[1::2] Traceback (последний последний вызов): Файл "", строка 1, в TypeError: объект «функция» не подлежит подписке >>> четные_элементы(алфавит()) ['b', 'd', 'f', 'h', 'j', 'l', 'n', 'p', 'r', 't', 'v', 'x', ' г']
В этом примере вы определяете Alphabet() , функцию-генератор, которая выдает буквы алфавита одну за другой, когда функция используется в цикле.
К функциям Python, будь то генераторы или обычные функции, нельзя получить доступ с помощью индексации в квадратных скобках. Вы пробуете это во второй строке, и она вызывает TypeError .
Однако вы можете использовать функции генератора в циклах, и вы делаете это в последней строке, передавая Alphabet() to even_items() . Вы можете видеть, что результат такой же, как и в предыдущих двух примерах.
Удалить рекламу
Понимание Python
enumerate() В последних нескольких разделах вы видели примеры того, когда и как использовать enumerate() в ваших интересах. Теперь, когда вы разобрались с практическими аспектами enumerate() , вы можете больше узнать о внутренней работе функции.
Чтобы лучше понять, как enumerate() работает, вы можете реализовать свою версию с помощью Python. Ваша версия enumerate() имеет два требования.
Должно:
- Принять итерируемое и начальное значение счетчика в качестве аргументов
- Отправьте обратно кортеж с текущим значением счетчика и связанным элементом из итерируемого
Один из способов написать функцию, соответствующую этим спецификациям, приведен в документации Python:
>>>
>>> def my_enumerate (последовательность, начало = 0): ... п = начало ... для элемента последовательно: ... выход n, элемент ... п += 1 ...
my_enumerate() принимает два аргумента, последовательность и начало . Значение по умолчанию start равно 0 . Внутри определения функции вы инициализируете n значением start и запускаете цикл for по последовательности .
Для каждого элемента в последовательности вы возвращаете управление обратно в вызывающее местоположение и отправляете обратно текущие значения n и элемент .
Наконец, вы увеличиваете на , чтобы подготовиться к следующей итерации. Вы можете увидеть my_enumerate() в действии здесь:
>>>
>>> сезоны = ["Весна", "Лето", "Осень", "Зима"] >>> my_enumerate(сезоны) <объект генератора my_enumerate по адресу 0x7f48d7a9ca50> >>> список (my_enumerate (сезоны)) [(0, 'Весна'), (1, 'Лето'), (2, 'Осень'), (3, 'Зима')] >>> list(my_enumerate(сезоны, начало=1)) [(1, 'Весна'), (2, 'Лето'), (3, 'Осень'), (4, 'Зима')]
Сначала вы создаете список четырех времен года, с которыми будете работать. Далее вы показываете, что вызов my_enumerate() с сезонами в качестве последовательности создает объект-генератор. Это связано с тем, что вы используете ключевое слово yield для отправки значений обратно вызывающей стороне.
Наконец, вы создаете два списка из my_enumerate() , в одном из которых начальное значение оставлено по умолчанию, 0 , а в другом начальное изменено на 1 .
В обоих случаях вы получите список кортежей, в котором первый элемент каждого кортежа — это количество, а второй элемент — это значение из сезонов .
Хотя вы можете реализовать эквивалентную функцию для enumerate() всего в нескольких строках кода Python, фактический код для enumerate() написан на C. Это означает, что он очень быстрый и эффективный.
Распаковка аргументов с помощью
enumerate() Когда вы используете enumerate() в цикле for вы говорите Python использовать две переменные, одну для подсчета и одну для самого значения. Вы можете сделать это, используя концепцию Python, называемую аргументом распаковки .
Аргумент распаковки заключается в том, что кортеж можно разбить на несколько переменных в зависимости от длины последовательности. Например, вы можете распаковать кортеж из двух элементов в две переменные:
>>>
>>> tuple_2 = (10, "а") >>> первый_элемент, второй_элемент = кортеж_2 >>> первый_элемент 10 >>> второй_элемент а
Сначала вы создаете кортеж из двух элементов: 10 и "a" .
Затем вы распаковываете этот кортеж в first_elem и second_elem , каждому из которых присваивается одно из значений из кортежа.
Когда вы вызываете enumerate() и передаете последовательность значений, Python возвращает итератор . Когда вы запрашиваете у итератора его следующее значение, он возвращает кортеж с двумя элементами. Первый элемент кортежа — это количество, а второй элемент — это значение из последовательности, которую вы передали:
>>>
>>> значения = ["а", "б"] >>> enum_instance = перечислить (значения) >>> enum_instance <перечисление по адресу 0x7fe75d728180> >>> следующий (enum_instance) (0, 'а') >>> следующий (enum_instance) (1, 'б') >>> следующий (enum_instance) Traceback (последний последний вызов): Файл "", строка 1, в Остановить итерацию
В этом примере вы создаете список с именем значений с двумя элементами, "a" и "б" .
Затем вы передаете значений в enumerate() и присваиваете возвращаемое значение enum_instance . Когда вы напечатаете enum_instance , вы увидите, что это экземпляр enumerate() с определенным адресом памяти.
Затем вы используете встроенный в Python next() для получения следующего значения из enum_instance . Первое значение, которое возвращает enum_instance , — это кортеж со значением 9.0590 0 и первый элемент из значений , то есть "a" .
Повторный вызов next() для enum_instance дает еще один кортеж, на этот раз со значением count 1 и вторым элементом из со значениями , "b" . Наконец, вызов next() еще раз вызывает StopIteration , так как из enum_instance больше не возвращаются значения.
Когда итерируемый объект используется в для цикла , Python автоматически вызывает next() в начале каждой итерации, пока не будет поднят StopIteration .
Python присваивает значение, полученное из итерации, переменной цикла.
Если итерируемый объект возвращает кортеж, вы можете использовать распаковку аргумента, чтобы присвоить элементы кортежа нескольким переменным. Это то, что вы делали ранее в этом руководстве, используя две переменные цикла.
В другой раз вы, возможно, видели распаковку аргумента с помощью 9Цикл 0590 for имеет встроенный zip() , который позволяет выполнять итерацию по двум или более последовательностям одновременно. На каждой итерации zip() возвращает кортеж, который собирает элементы из всех переданных последовательностей:
>>>
>>> первый = ["а", "б", "с"] >>> секунда = ["д", "е", "е"] >>> третий = ["г", "ч", "я"] >>> на раз, два, три в zip(первый, второй, третий): ... печать (один, два, три) ... а д г б е ч с ф я
Используя zip() , вы можете перебирать первых , вторых и третьих одновременно.
В цикле для вы назначаете элементу из первый в один , из второй в два , а из третий в три . Затем вы печатаете три значения.
Вы можете комбинировать zip() и enumerate() , используя вложенный аргумент распаковки:
>>>
>>> для количества (один, два, три) в перечислении (zip (первый, второй, третий)): ... напечатать (количество, один, два, три) ... 0 а д г 1 б е ч 2 с ф я
В цикле for в этом примере вы вкладываете zip() внутрь enumerate() . Это означает, что каждый раз, когда цикл for выполняет итерацию, enumerate() дает кортеж с первым значением в качестве счетчика и вторым значением в качестве другого кортежа, содержащего элементы от аргументов до zip() . Чтобы распаковать вложенную структуру, вам нужно добавить круглые скобки для захвата элементов из вложенного кортежа элементов из zip() .
Существуют и другие способы эмулировать поведение enumerate() в сочетании с zip() . Один метод использует itertools.count() , который по умолчанию возвращает последовательные целые числа, начиная с нуля. Вы можете изменить предыдущий пример, чтобы использовать itertools.count() :
>>>
>>> импортировать itertools >>> для подсчета раз, два, три в zip(itertools.count(), первый, второй, третий): ... напечатать (количество, один, два, три) ... 0 а д г 1 б е ч 2 с ф я
Использование itertools.count() в этом примере позволяет использовать один вызов zip() для генерации счетчика, а также переменных цикла без распаковки вложенных аргументов.
Удалить рекламу
Заключение
Python’s enumerate() позволяет вам писать Pythonic для циклов , когда вам нужен счет и значение из итерации.
Большим преимуществом enumerate() является то, что он возвращает кортеж со счетчиком и значением, поэтому вам не нужно самостоятельно увеличивать счетчик. Это также дает вам возможность изменить начальное значение счетчика.
В этом уроке вы узнали, как:
- Используйте Python
enumerate()в вашемдляпетля - Применить
enumerate()в нескольких реальных примерах - Получить значения из
enumerate()с использованием распаковки аргумента - Реализуйте собственную эквивалентную функцию –
enumerate()
Вы также видели, как enumerate() используется в некотором реальном коде, в том числе в репозитории кода CPython. Теперь у вас есть суперспособность упростить ваши циклы и сделать код Python стильным!
Смотреть сейчас Это руководство содержит связанный с ним видеокурс, созданный командой Real Python.
Посмотрите его вместе с письменным учебным пособием, чтобы углубить свое понимание: Looping With Python enumerate()
IntelliSense в Visual Studio Code
IntelliSense — это общий термин для различных функций редактирования кода, в том числе: завершение кода, информация о параметрах, краткая информация, и списки участников. Функции IntelliSense иногда называют другими именами, такими как «завершение кода», «помощь по содержимому» и «подсказка по коду».
IntelliSense для вашего языка программирования
Visual Studio Code IntelliSense предоставляется по умолчанию для JavaScript, TypeScript, JSON, HTML, CSS, SCSS и Less. VS Code поддерживает автозавершение на основе слов для любого языка программирования, но также может быть настроен на использование более богатого IntelliSense путем установки языкового расширения.
Ниже представлены самые популярные языковые расширения в Marketplace.
Выберите плитку расширения ниже, чтобы прочитать описание и отзывы, чтобы решить, какое расширение лучше всего подходит для вас.
Функции IntelliSense
Функции VS Code IntelliSense работают на основе языковой службы. Языковая служба обеспечивает интеллектуальное завершение кода на основе языковой семантики и анализа исходного кода. Если языковая служба знает возможные варианты завершения, предложения IntelliSense будут появляться по мере ввода. Если вы продолжаете вводить символы, список членов (переменных, методов и т. д.) фильтруется и включает только элементы, содержащие введенные вами символы. Нажатие Tab или Enter вставит выбранный элемент.
Вы можете активировать IntelliSense в любом окне редактора, введя ⌃Пробел (Windows, Linux Ctrl+Пробел) или введя символ запуска (например, символ точки (.) в JavaScript).
Совет: Виджет предложений поддерживает фильтрацию CamelCase, то есть вы можете вводить буквы в верхнем регистре в имени метода, чтобы ограничить количество предложений.
Например, «cra» быстро вызовет «createApplication».
При желании вы можете отключить IntelliSense во время ввода. См. раздел «Настройка IntelliSense» ниже, чтобы узнать, как отключить или настроить функции IntelliSense в VS Code.
Как предоставляется языковой службой, вы можете просмотреть краткую информацию для каждого метода, нажав ⌃Пробел (Windows, Linux Ctrl+Пробел) или щелкнув значок информации. Сопроводительная документация к методу теперь развернется в сторону. Расширенная документация останется прежней и будет обновляться по мере навигации по списку. Вы можете закрыть это, снова нажав ⌃Пробел (Windows, Linux Ctrl+Пробел) или щелкнув значок закрытия.
После выбора метода Вам предоставляется информация о параметрах .
Когда применимо, языковая служба будет отображать базовые типы в краткой информации и сигнатурах методов. На изображении выше вы можете увидеть несколько любых типов .
Поскольку JavaScript динамичен и не требует типов и не применяет их, любой предполагает, что переменная может быть любого типа.
Типы автодополнений
Код JavaScript ниже иллюстрирует автодополнения IntelliSense. IntelliSense предоставляет как предполагаемые предложения, так и глобальные идентификаторы проекта. Выведенные символы представлены первыми, за ними следуют глобальные идентификаторы (показаны значком Word).
VS Code IntelliSense предлагает различные типы дополнений, включая предложения языкового сервера, фрагменты и простые текстовые дополнения на основе слов.
| Значок | Имя | Тип символа |
|---|---|---|
| Методы и функции | метод , функция , конструктор | |
| Переменные | переменная | |
| Поля | поле | |
| Тип параметров | ТипПараметр | |
| Константы | постоянный | |
| Классы | класс | |
| Интерфейсы | интерфейс | |
| Конструкции | структура | |
| События | событие | |
| Операторы | оператор | |
| Модули | модуль | |
| Свойства и атрибуты | имущество | |
| Значения и перечисления | значение , перечисление | |
| Ссылки | № по каталогу | |
| Ключевые слова | ключевое слово | |
| Файлы | файл | |
| Папки | папка | |
| Цвета | цвет | |
| Блок | шт. | |
| Префиксы сниппетов | фрагмент | |
| Слова | текст |
Настройка IntelliSense
Вы можете настроить работу с IntelliSense в настройках и привязках клавиш.
Настройки
Показанные ниже настройки являются настройками по умолчанию. Вы можете изменить эти настройки в файле settings.json 9.0591, как описано в разделе Параметры пользователя и рабочей области.
{
// Контролирует, должны ли появляться быстрые предложения при наборе текста
"editor.quickSuggestions": {
"другое": правда,
"комментарии": ложь,
"строки": ложь
},
// Определяет, следует ли принимать предложения для символов фиксации. Например, в JavaScript точка с запятой (`;`) может быть символом фиксации, который принимает предложение и вводит этот символ.
"editor.acceptSuggestionOnCommitCharacter": правда,
// Определяет, следует ли принимать предложения по клавише «Enter» — в дополнение к «Tab». Помогает избежать двусмысленности между вставкой новых строк или принятием предложений. Значение «умный» означает, что предложение следует принимать только с помощью Enter, когда оно вносит текстовое изменение.
"editor.acceptSuggestionOnEnter": "включено",
// Управляет задержкой в мс, после которой будут отображаться быстрые предложения.
"editor.quickSuggestionsDelay": 10,
// Контролирует, должны ли предложения автоматически отображаться при вводе триггерных символов
"editor.suggestOnTriggerCharacters": правда,
// Контролирует, вставляется ли нажатие клавиши Tab наилучшее предложение и переключается ли вкладка между другими предложениями
"editor.tabCompletion": "выключено",
// Определяет, будут ли при сортировке отдавать предпочтение слова, расположенные рядом с курсором
"editor.suggest.localityBonus": правда,
// Управляет предварительным выбором предложений при отображении списка предложений
"editor.
suggestSelection": "первый",
// Включить предложения на основе слов
"editor.wordBasedSuggestions": правда,
// Включить подсказки параметров
"editor.parameterHints.enabled": правда,
}
Завершение с помощью табуляции
Редактор поддерживает "дополнение с помощью табуляции", которое вставляет наиболее подходящее завершение при нажатии клавиши Tab. Это работает независимо от того, отображается виджет предложения или нет. Кроме того, нажатие Tab после вставки предложения вставит следующее лучшее предложение.
По умолчанию завершение с помощью табуляции отключено. Используйте параметр editor.tabCompletion , чтобы включить его. Существуют следующие значения:
-
выкл.— (по умолчанию) завершение с помощью табуляции отключено. -
на— завершение с помощью табуляции включено для всех предложений, а повторные вызовы вставляют следующее лучшее предложение.
-
onlySnippets— Завершение с помощью табуляции вставляет только статические фрагменты, префикс которых совпадает с префиксом текущей строки.
Locality Bonus
Сортировка предложений зависит от информации о расширении и от того, насколько они соответствуют текущему слову, которое вы вводите. Кроме того, вы можете попросить редактора усилить предложения, которые появляются ближе к положению курсора, используя editor.suggest.localityBonus настройка.
На изображениях выше вы можете видеть, что count , context и colocated сортируются на основе областей, в которых они появляются (цикл, функция, файл).
Выбор предложения
По умолчанию VS Code предварительно выбирает первое предложение в списке предложений. Если вы хотите изменить поведение, например, чтобы всегда выбирать последний использованный элемент в списке предложений, вы можете использовать установка editor..
suggestSelection
Доступные значения editor.suggestSelection :
-
first— (по умолчанию) Всегда выбирать верхний элемент списка. -
недавно использованный— Выбирается ранее использовавшийся элемент, если префикс (тип для выбора) не выбирает другой элемент. -
nowUsedByPrefix— выберите элементы на основе предыдущих префиксов, которые завершили эти предложения.
Выбор последнего использовавшегося элемента очень удобен, так как вы можете быстро вставить одно и то же завершение несколько раз.
"Введите для выбора" означает, что текущий префикс (примерно текст слева от курсора) используется для фильтрации и сортировки предложений. Когда это происходит и когда его результат отличается от результата , недавно использованного , ему будет отдан приоритет.
При использовании последней опции, недавноUsedByPrefix , VS Code запоминает, какой элемент был выбран для определенного префикса (частичный текст).
Например, если вы набрали вместо , а затем выбрали консоль , то при следующем вводе co , консоль предложения будет предварительно выбрана. Это позволяет быстро сопоставлять различные префиксы с различными предложениями, например co -> console и con -> const .
Фрагменты в предложениях
По умолчанию VS Code показывает фрагменты и варианты завершения в одном виджете. Вы можете управлять поведением с помощью параметра editor.snippetSuggestions . Чтобы удалить фрагменты из виджета предложений, установите значение 9.0590 "нет" . Если вы хотите видеть фрагменты, вы можете указать порядок относительно предложений; вверху ( "top" ), внизу ( "bottom" ) или в строке в алфавитном порядке ( "inline" ). По умолчанию "встроенный" .
Привязки клавиш
Привязки клавиш, показанные ниже, являются привязками клавиш по умолчанию.
Вы можете изменить их в файле keybindings.json , как описано в разделе «Привязки клавиш».
Примечание: Есть много других привязок клавиш, связанных с IntelliSense. Откройте Сочетания клавиш по умолчанию ( Файл > Настройки > Сочетания клавиш ) и найдите «предложить».
[
{
"клавиша": "ctrl+пробел",
"команда": "editor.action.triggerSuggest",
"когда": "editorHasCompletionItemProvider && editorTextFocus && !editorReadonly"
},
{
"клавиша": "ctrl+пробел",
"command": "toggleSuggestionDetails",
"когда": "editorTextFocus && offerWidgetVisible"
},
{
"клавиша": "ctrl+alt+пробел",
"команда": "toggleSuggestionFocus",
"когда": "editorTextFocus && offerWidgetVisible"
}
]
Устранение неполадок
Если вы обнаружите, что IntelliSense перестала работать, языковая служба может быть не запущена.
Попробуйте перезапустить VS Code, и это должно решить проблему. Если вам по-прежнему не хватает функций IntelliSense после установки языкового расширения, откройте проблему в репозитории языкового расширения.
Совет: Для настройки и устранения неполадок JavaScript IntelliSense см. документацию по JavaScript.
Определенное языковое расширение может не поддерживать все функции VS Code IntelliSense. Просмотрите README расширения, чтобы узнать, что поддерживается. Если вы считаете, что есть проблемы с языковым расширением, вы обычно можете найти репозиторий проблем для расширения через VS Code Marketplace. Перейдите на страницу сведений о расширении и выберите Поддержка связи .
Следующие шаги
IntelliSense — это лишь одна из мощных функций VS Code. Читайте дальше, чтобы узнать больше:
- JavaScript. Получите максимальную отдачу от разработки JavaScript, включая настройку IntelliSense.

- Node.js — см. пример IntelliSense в действии в пошаговом руководстве по Node.js.
- Отладка — узнайте, как настроить отладку для своего приложения.
- Создание языковых расширений. Узнайте, как создавать расширения, добавляющие IntelliSense для новых языков программирования.
Общие вопросы
Почему я не получаю никаких предложений?
Это может быть вызвано разными причинами. Во-первых, попробуйте перезапустить VS Code. Если проблема не устранена, обратитесь к документации расширения языка. Информацию об устранении неполадок, связанных с JavaScript, см. в разделе, посвященном языку JavaScript.
Почему я не вижу предложенных методов и переменных?
Эта проблема вызвана отсутствием файлов объявления типов (типизации) в JavaScript. Вы можете проверить, доступен ли пакет файла объявления типа для конкретной библиотеки, используя сайт TypeSearch.

