с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

Ѐункция type Π² Python 3

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция type Π² языкС программирования Python.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Python ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство встроСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ обсудим, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ type.

ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Для этого Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ type.

ОписаниС

Type β€” это встроСнная функция, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ Π½Π° Π²Ρ…ΠΎΠ΄.

НуТно просто ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ type, ΠΈ Python Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ….

Π’ основном, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π΅ Π² цСлях ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

АргумСнт являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΡŒ функция type.

АргумСнтом ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ строка, Ρ†Π΅Π»ΠΎΠ΅ число, список, ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, мноТСство, ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈ Ρ‚.Π΄.

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ type Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚.Π΅. type(name, databases, dict). Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ½ Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π°ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ синтаксис

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ИспользованиС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ всСх Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… для записи ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° string, integer, negative value, float value, complex number, list, tuple, set ΠΈ dictionary. ПослС этого ΠΌΡ‹ распСчатаСм Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ посмотрим Π²Ρ‹Π²ΠΎΠ΄.

Π—Π΄Π΅ΡΡŒ всС просто ΠΈ понятно.

ИспользованиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ синтаксиса

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ возьмСм всС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ имя, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс ΠΈ Ρ‚.Π΄. ПослС этого ΠΌΡ‹ распСчатаСм Π²Ρ‹Π²ΠΎΠ΄. Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π±ΠΎΠ»Π΅Π΅ наглядно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ функция type с двумя Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈ всС Ρ‚ΠΈΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ type.

Однако, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ сомнСния ΠΈΠ»ΠΈ вопросы, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½ΠΈΠΆΠ΅. Π― ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Type

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля для опрСдСлСния Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, опрСдСляСмого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, содСрТащСго ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько элСмСнтов.

Бинтаксис

Бинтаксис инструкции Type состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

ЗаявлСниС Type ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля. ПослС объявлСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Type ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ этого Ρ‚ΠΈΠΏΠ° Π² любом мСстС Π² области объявлСния. Для объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Dim, Private, Public, ReDim ΠΈΠ»ΠΈ Static.

Π’ стандартных модулях ΠΈ модулях классов ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ общСдоступными (public) ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚Ρƒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова Private.

Π’ Π±Π»ΠΎΠΊΠ°Ρ… Type. End Type нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строк ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ строк.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ с записями Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто состоят ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… связанных элСмСнтов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС массивов фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ΅:

ΠŸΡ€ΠΈ объявлСнии массива фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ‚ΠΈΠΏΠ΅ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ констант, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ инструкция Type ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объявлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Type ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ модуля. Если ΠΎΠ½Π° появляСтся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ класса, ΠΏΠ΅Ρ€Π΅Π΄ инструкциСй Type Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Private.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ обратная связь

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Office VBA ΠΈΠ»ΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ? Руководство ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам получСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Office VBA ΠΈ обратная связь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ВСст ΠΏΠΎ ассСмблСру (ΡƒΠ³Π»ΡƒΠ±Π»Ρ‘Π½Π½Ρ‹ΠΉ). Π§Π°ΡΡ‚ΡŒ 1.

1. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 10 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 2Ρ…5. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… Π½ΡƒΠ»Π΅Π²ΠΎΠΉ элСмСнт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.1):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

2. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 15 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 3Ρ…5. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.2):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

3. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 20 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 4Ρ…5. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.3):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

4. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 16 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 4Ρ…4. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.4):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

5. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 6 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 2Ρ…3. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.5):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

6. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив array Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ описан ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ array dw 18 dup (?), Π³Π΄Π΅ элСмСнты массива ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π² 2 Π±Π°ΠΉΡ‚Π°. Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ 6Ρ…3. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ элСмСнту массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ рСгистры esi – столбцы Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ ΠΈ ebx –строки Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² рСгистр Π΅Π°Ρ… Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ элСмСнт Π²Ρ‚ΠΎΡ€ΠΎΠΉ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (см. рис. 1.6):

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

7) TASM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ слоТныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

8) Если ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: mas dd 5 dup (0). Какой ΠΎΠ±ΡŠΡ‘ΠΌ памяти Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΏΠΎΠ΄ массив?

9) Π—Π°Π΄Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив Π² ассСмблСрС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π“) mas db 23,4,5,67,5,6,7,99,67,8,9,23,87,9,0,8; +

10) АдрСс элСмСнта (i,j) Π² Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

А) (Π±Π°Π·Π° + количСство_элСмСнтов_Π²_строкС * Ρ€Π°Π·ΠΌΠ΅Ρ€_элСмСнта * i+j*Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта); +

Π‘) (Π±Π°Π·Π°+смСщСниС + количСство_элСмСнтов_Π²_строкС * Ρ€Π°Π·ΠΌΠ΅Ρ€_элСмСнта * i+j**Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта);

Π’) (смСщСниС + количСство_элСмСнтов_Π²_строкС * Ρ€Π°Π·ΠΌΠ΅Ρ€_элСмСнта * i+j);

Π“) (Π±Π°Π·Π° + количСство_элСмСнтов_Π²_строкС+смСщСниС * Ρ€Π°Π·ΠΌΠ΅Ρ€_элСмСнта * i+j*Ρ€Π°Π·ΠΌΠ΅Ρ€ элСмСнта);

Π”) (смСщСниС + количСство_элСмСнтов_Π²_строкС +Π±Π°Π·Π°* Ρ€Π°Π·ΠΌΠ΅Ρ€_элСмСнта * i+j);

11) Для использования структур Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

А) Π·Π°Π΄Π°Ρ‚ΡŒ шаблон структуры; +

Π‘) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ экзСмпляр структуры; +

Π’) ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам структуры; +

Π“) ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ экзСмпляр структуры послС использования Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅;

Π”) ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ шаблон структуры;

12) Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ:

А) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌ памяти, выдСляСмый ΠΏΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ элСмСнт структуры; +

Π‘) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΡ‘ΠΌ памяти, выдСляСмый ΠΏΠΎΠ΄ массив структур;

Π’) ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ Π² массивС структур; +

Π“) ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту структуры Π² Π²ΠΈΠ΄Π΅ (адрСсноС_Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) type (имя_поля_структуры);

13) Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ транслятору ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ имССтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

14) Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π΄Π²Π° модуля, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ modul1.asm ΠΈ modul2.asm Π² ΠΎΠ΄ΠΈΠ½ исполняСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

А) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ модуля modul1.asm ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ modul1.obj; +

Π‘) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ модуля modul2.asm ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ modul2.obj; +

Π’) cΠΊΠΎΠΌΠΏΠ°Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ TLINK ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой Π²ΠΈΠ΄Π° tlink /v modul1.obj+ modul2.obj; +

Π“) cΠΊΠΎΠΌΠΏΠ°Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ TLINK ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой Π²ΠΈΠ΄Π° tlink /Π‘ modul1.obj+ modul2.obj;

Π”) cΠΊΠΎΠΌΠΏΠ°Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ TLINK ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой Π²ΠΈΠ΄Π° tlink /C modul1.obj and modul2.obj;

15) ΠŸΡ€ΠΎΠ»ΠΎΠ³ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для:

Π°) ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рСгистра bp; +

Π±) ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ рСгистра sp;

Π²) для доступа ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· стСк; +

Π³) для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эпилог Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹;

16) Если Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ‚ΠΈΠΏΠ° near Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· стСк Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Ρ‚ΠΎ для доступа Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ ΠΊ послСднСму ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

А) ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ содСрТимого bp Π½Π° 4 Π±Π°ΠΉΡ‚Π°; +

Π‘) ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ содСрТимого bp Π½Π° 6 Π±Π°ΠΉΡ‚Π°;

Π’) ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ содСрТимого bp Π½Π° 8 Π±Π°ΠΉΡ‚Π°;

Π“) ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ содСрТимого bp Π½Π° 2 Π±Π°ΠΉΡ‚Π°;

17) Команда ret n Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для:

А) очистки стСка ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π»ΠΈΡΡŒ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ; +

Π‘) обращСния ΠΊ n-ΠΎΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдавался Ρ‡Π΅Ρ€Π΅Π· стСк;

Π’) ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΏΠΎ ΠΈΡ… адрСсу;

18) ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚:

А) использованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ; +

Π‘) использованиС ΠΎΠ±Ρ‰Π΅ΠΉ области памяти;

Π’) использованиС Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ;

Π“) Ρ€Π°Π±ΠΎΡ‚Ρƒ с прСрываниями DOS ΠΈ BIOS;

19) ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· стСк Β«ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² стСкС», «адрСс Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π°Β» ΠΈ «староС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’Π Β» вмСстС Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

Π’) Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ записью Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ; +

Π“) ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹;

Π”) ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹;

20) Π—Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ p_l Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

21) Если Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° структура worker, которая ΠΈΠΌΠ΅Π΅Ρ‚ 6 ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 76 Π±Π°ΠΉΡ‚, Ρ‚ΠΎ запись Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ‚ΠΈΠΏΠ° sotr worker<> ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ:

А) всС значСния ΠΏΠΎΠ»Π΅ΠΉ для структуры sotr Π·Π°Π΄Π°Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ; +

Π‘) всС значСния ΠΏΠΎΠ»Π΅ΠΉ для структуры sotr Ρ€Π°Π²Π½Ρ‹ 0;

Π’) всС значСния ΠΏΠΎΠ»Π΅ΠΉ для структуры sotr Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 1 Π±Π°ΠΉΡ‚;

Π“) Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ шаблон для структуры с ΠΈΠΌΠ΅Π½Π΅ΠΌ sotr;

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ°Ρ€ΠΌΠ°Π½Π½Π°Ρ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎ TypeScript. Π§Π°ΡΡ‚ΡŒ 6. ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ

с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° type ΠΌΠΎΠΆΠ½ΠΎ

ΠœΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ΅Ρ€ΠΈΡŽ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° «ΠšΠ°Ρ€ΠΌΠ°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ TypeScript «.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: для большого удобства Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ прогрСссивного Π²Π΅Π±-прилоТСния.
БистСма Ρ‚ΠΈΠΏΠΎΠ² TS позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π½Π° основС Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ (generics). Π’ нашСм распоряТСнии Ρ‚Π°ΠΊΠΆΠ΅ имССтся Ρ†Π΅Π»Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠ°. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Ρƒ нас Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

Π”ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ any :

Однако, ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ значСния.

Нам Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ способ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° для обозначСния с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ°, ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΈΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π° Π½Π΅ со значСниями:

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Type ΠΊΠ°ΠΊ для Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ для Ρ‚ΠΈΠΏΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ значСния.

Π’Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ (Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌΠΈ), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ двумя способами. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ всСх Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚ΠΈΠΏΠ°:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ являСтся строка.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ компилятору:

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ являСтся Π±ΠΎΠ»Π΅Π΅ распространСнным. Однако, Π² Π±ΠΎΠ»Π΅Π΅ слоТных случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Π² Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ…

Π§Ρ‚ΠΎ Ссли ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² консоль Π΄Π»ΠΈΠ½Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° arg ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ?

ИзмСним сигнатуру Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° с массивом Type :

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ самоС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΎΠ³ΠΎ синтаксиса:

ΠžΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹

Π’ΠΈΠΏ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°) ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ‚ΠΈΠΏ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ указываСтся Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°:

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π² Π²ΠΈΠ΄Π΅ сигнатуры Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚ΠΈΠΏΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ нас ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ интСрфСйсу:

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ для всСх Ρ‡Π»Π΅Π½ΠΎΠ² интСрфСйса, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ послС названия интСрфСйса:

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‰ΠΈΡ… интСрфСйсов, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ классы.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠ΅ пСрСчислСния (enums) ΠΈ пространства ΠΈΠΌΠ΅Π½ (namespaces) ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ нСльзя.

ΠžΠ±Ρ‰ΠΈΠ΅ классы

ΠžΠ±Ρ‰ΠΈΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс:

Π’ случаС с Π΄Π°Π½Π½Ρ‹ΠΌ классом ΠΌΡ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ числами. ΠœΡ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строки ΠΈΠ»ΠΈ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹:

Класс ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ стороны с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚ΠΈΠΏΠΎΠ²: ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ сторону ΠΈ сторону экзСмпляров. ΠžΠ±Ρ‰ΠΈΠ΅ классы ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для экзСмпляров. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ статичСскиС Ρ‡Π»Π΅Π½Ρ‹ класса Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° класса.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ²

Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ интСрфСйс, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм интСрфСйс с СдинствСнным свойством length ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова extends для примСнСния органичСния:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊ Π±Ρ‹Π» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΎΠ½ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ:

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅ΠΌΡƒ значСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ всСм установлСнным трСбованиям:

ИспользованиС Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ограничСниях Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ²

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΈΡ… названиям. ΠŸΡ€ΠΈ этом, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… свойств. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ:

ИспользованиС Ρ‚ΠΈΠΏΠΎΠ² класса Π² Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°Ρ…

ΠŸΡ€ΠΈ создании Ρ„Π°Π±Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΈΠΏΡ‹ классов Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-конструкторы. НапримСр:

Π’ Π±ΠΎΠ»Π΅Π΅ слоТных случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ использованиС свойства prototype для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ограничСния ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ-конструктором ΠΈ стороной экзСмляров Ρ‚ΠΈΠΏΠ° класса:

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² миксинах ΠΈΠ»ΠΈ примСсях.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° keyof

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ keyof «Π±Π΅Ρ€Π΅Ρ‚» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строковоС ΠΈΠ»ΠΈ числовоС Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ объСдинСниС Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ:

Π’ΠΈΠΏΡ‹ keyof ΡΠ²Π»ΡΡŽΡ‚ΡΡ особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ Π² сочСтании со связанными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ (mapped types), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим ΠΏΠΎΠ·ΠΆΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠ° typeof

Π’ TS ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ typeof ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² контСкстС Ρ‚ΠΈΠΏΠ° для ссылки Π½Π° Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ свойства:

Π—Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: значСния ΠΈ Ρ‚ΠΈΠΏΡ‹ β€” это Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅. Для ссылки Π½Π° Ρ‚ΠΈΠΏ значСния f слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ typeof :

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ

typeof ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² (Π½Π°Π·Π²Π°Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…) ΠΈΠ»ΠΈ ΠΈΡ… свойств. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ написания ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ выполняСтся:

Π’ΠΈΠΏΡ‹ доступа ΠΏΠΎ индСксу (indexed access types)

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ доступа ΠΏΠΎ индСксу для опрСдСлСния Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ объСдинСния, keyof ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹:

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ доступа ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ свойству Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка:

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ индСксации Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании number для получСния Ρ‚ΠΈΠΏΠΎΠ² элСмСнтов массива. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ typeof для ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Ρ‚ΠΈΠΏΠ° элСмСнта:

Однако, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ синоним Ρ‚ΠΈΠΏΠ° (type alias):

УсловныС Ρ‚ΠΈΠΏΡ‹ (conditional types)

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π°ΠΌ приходится ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’ TS Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ зависят ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². УсловныС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ входящих ΠΈ выходящих Π΄Π°Π½Π½Ρ‹Ρ….

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ польза условных Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ слишком ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. Она становится Π±ΠΎΠ»Π΅Π΅ явной ΠΏΡ€ΠΈ совмСстном использовании условных Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠ² (ΠΎΠ±Ρ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²).

Рассмотрим Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ:

ΠŸΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ createLabel ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π΄Π΅Π»Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ Π½Π° основС Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ВмСсто этого, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ условных Ρ‚ΠΈΠΏΠΎΠ²:

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ для избавлСния ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ:

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ условных Ρ‚ΠΈΠΏΠΎΠ²

Часто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π² условном Ρ‚ΠΈΠΏΠ΅ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΠΎΠ²ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Подобно Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ суТСниС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π°Ρ‰ΠΈΡ‚Π½ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΈΠΏΠ° (type guards) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, инстинная Π²Π΅Ρ‚ΠΊΠ° условного Ρ‚ΠΈΠΏΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΈ ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ провСряСм.

Рассмотрим Ρ‚Π°ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² условных Ρ‚ΠΈΠΏΠ°Ρ…

ΠœΡ‹ использовали условныС Ρ‚ΠΈΠΏΡ‹ для примСнСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ извлСчСния Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ являСтся Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ распространСнной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎ сущСствуСт особая Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ условных Ρ‚ΠΈΠΏΠΎΠ².

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ использовали ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово infer для Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ° Item вмСсто извлСчСния Ρ‚ΠΈΠΏΠ° элСмСнта T Π² истинной Π²Π΅Ρ‚ΠΊΠ΅. Π­Ρ‚ΠΎ избавляСт нас ΠΎΡ‚ нСобходимости «ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ» ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ структуру Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹.

ΠŸΡ€ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° основС Ρ‚ΠΈΠΏΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сигнатур Π²Ρ‹Π·ΠΎΠ²Π° (Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ выполняСтся Π½Π° основС послСднСй сигнатуры. НСвозмоТно произвСсти Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° основС списка Ρ‚ΠΈΠΏΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

РаспрСдСлСнныС условныС Ρ‚ΠΈΠΏΡ‹ (distributive conditional types)

Когда условныС Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠ°ΠΌ, ΠΎΠ½ΠΈ становятся распрСдСлСнными ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ объСдинСния (union). Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π—Π΄Π΅ΡΡŒ StrOrNumArray распрСдСляСтся Π½Π°:

ΠΈ примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‡Π»Π΅Π½Ρƒ объСдинСния:

Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ являСтся ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΌ. Для Π΅Π³ΠΎ измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сторону extends Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки:

БвязанныС Ρ‚ΠΈΠΏΡ‹ (mapped types)

БвязанныС Ρ‚ΠΈΠΏΡ‹ основаны Π½Π° синтаксисС сигнатуры доступа ΠΏΠΎ индСксу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² свойств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π·Π°Ρ€Π°Π½Π΅Π΅:

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ связывания (mapping modifiers)

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ связываниС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ as

Π’ TS 4.1 ΠΈ Π²Ρ‹ΡˆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΡƒ as для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ связывания ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² связанном Ρ‚ΠΈΠΏΠ΅:

Для создания Π½ΠΎΠ²Ρ‹Ρ… Π½Π°Π·Π²Π°Π½ΠΈΠΉ свойств Π½Π° основС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏΡ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² (см. Π½ΠΈΠΆΠ΅):

ΠšΠ»ΡŽΡ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ never Π² условном Ρ‚ΠΈΠΏΠ΅:

БвязанныС Ρ‚ΠΈΠΏΡ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ возмоТностями ΠΏΠΎ манипуляции Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с условными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ условный Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true ΠΈΠ»ΠΈ false Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, содСрТит Π»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ свойство pii с Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½ΠΎ установлСнным true :

Π’ΠΈΠΏΡ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² (template literal types)

Π’ΠΈΠΏΡ‹ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² основаны Π½Π° Ρ‚ΠΈΠΏΠ°Ρ… строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² нСсколько строк Ρ‡Π΅Ρ€Π΅Π· объСдинСния.

Когда Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΎΠ½ являСтся Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ строкого Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ‡Π»Π΅Π½ΠΎΠΌ объСдинСния:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² шаблонном Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ объСдинСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ мноТСствСнными:

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ строковыС объСдинСния Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ способ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² простых случаях.

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ объСдинСния Π² Ρ‚ΠΈΠΏΠ°Ρ…

ΠœΠΎΡ‰ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… строк Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ проявляСтся ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠΉ строки Π½Π° основС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ°.

Π¨Π°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ систСмы Ρ‚ΠΈΠΏΠΎΠ²:

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ свойства Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ послСдний ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΊΠΎΠΌ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° основС частСй строки eventName :

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ on Π² ΠΎΠ±Ρ‰Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅.

Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ манипуляций со строками (intrisic string manipulation types)

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ эти Ρ‚ΠΈΠΏΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹:

ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвСры ΠΎΡ‚ ΠœΠ°ΠΊΠ»Π°ΡƒΠ΄ быстрыС ΠΈ бСзопасныС.

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎ ссылкС Π²Ρ‹ΡˆΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² Π½Π° Π±Π°Π½Π½Π΅Ρ€ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ 10% скидку Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ мСсяц Π°Ρ€Π΅Π½Π΄Ρ‹ сСрвСра любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Type Класс

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅

НСкоторыС свСдСния относятся ΠΊ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎ выпуска ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ внСсСны сущСствСнныС измСнСния. ΠœΠ°ΠΉΠΊΡ€ΠΎΡΠΎΡ„Ρ‚ Π½Π΅ прСдоставляСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ, явных ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅ΠΌΡ‹Ρ…, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… здСсь свСдСний.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ объявлСния Ρ‚ΠΈΠΏΠΎΠ² для классов, интСрфСйсов, массивов, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, пСрСчислСний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сконструированных ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Для обнаруТСния сигнатуры ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° создаСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ массив, содСрТащий Π΄Π²Π° Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ int ( Integer Π² Visual Basic).

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MethodInfo для Π²Ρ‹Π·ΠΎΠ²Π° Substring ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² строкС «Hello, World!» ΠΈ отобраТСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Type являСтся ΠΊΠΎΡ€Π½Π΅ΠΌ System.Reflection Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ являСтся основным способом доступа ΠΊ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌ. Π§Π»Π΅Π½Ρ‹ класса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Type для получСния свСдСний ΠΎΠ± объявлСнии Ρ‚ΠΈΠΏΠ°, ΠΎ Ρ‡Π»Π΅Π½Π°Ρ… Ρ‚ΠΈΠΏΠ° (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ конструкторы, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, поля, свойства ΠΈ события класса), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈ сборкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ класс.

Π’ сцСнариях многопоточности Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ для синхронизации доступа ΠΊ static Π΄Π°Π½Π½Ρ‹ΠΌ. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ элСмСнта управлСния, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ класса. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅. ВмСсто этого слСдуСт ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ доступ ΠΊ статичСским Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ static ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ сборки Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ссли доступ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π² ΠΊΠΎΠ΄Π΅ с Ρ€Π°Π½Π½Π΅ΠΉ привязкой, доступ ΠΊ Π½Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ Π² ΠΊΠΎΠ΄Π΅ с ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ связываниСм.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ интСрфСйсы, Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… интСрфСйсах.

КакиС Ρ‚ΠΈΠΏΡ‹ прСдставляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ°?

Π­Ρ‚ΠΎΡ‚ класс являСтся потокобСзопасным; нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· экзСмпляра этого Ρ‚ΠΈΠΏΠ°. ЭкзСмпляр Type класса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ любой ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ²:

БконструированныС ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ опрСдСлСния ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

АргумСнты Ρ‚ΠΈΠΏΠ° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² сконструированных ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ°

TypeΠžΠ±ΡŠΠ΅ΠΊΡ‚, связанный с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ способами.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вызываСтся Object.GetType ΠΌΠ΅Ρ‚ΠΎΠ΄ для опрСдСлСния Ρ‚ΠΈΠΏΠ° срСды выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² массивС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

БтатичСскиС Type.GetType ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Module.GetTypesΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, Module.GetType ΠΈ Module.FindTypes Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния массива Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² для всСх ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. (ЭкзСмпляр ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Module с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Assembly.GetModule Assembly.GetModules ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Type.Module свойство.)

FindInterfacesΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ список Ρ‚ΠΈΠΏΠΎΠ² интСрфСйса, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠΌ.

GetElementTypeΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ элСмСнт.

GetInterfacesΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ GetInterface Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ интСрфСйсов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΠΎΠΌ.

GetTypeFromHandleΠœΠ΅Ρ‚ΠΎΠ΄ обСспСчиваСт взаимодСйствиС. Он Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ класса.

MakeArrayTypeΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹, MakePointerType ΠΈ MakeByRefType Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ соотвСтствСнно массив ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈ Ρ‚ΠΈΠΏ ссылочного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ( ref Π² C#, ByRef Π² Visual Basic).

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Π½Π° равСнство

TypeΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ, являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ; Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ссылки Π½Π° Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ. Π­Ρ‚ΠΎ позволяСт ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Type ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ равСнство ссылок. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Type ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ число цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, относятся Π»ΠΈ ΠΎΠ½ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ этот ΠΌΠ΅Ρ‚ΠΎΠ΄

ΠŸΡ€ΠΈ наслСдовании ΠΈΠ· Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Type ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *