ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€: 1.4.5. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch | Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ° для всСх

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

1.4.7. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for | Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ° для всСх

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ части 1.4.5,1.4.6 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Switch, break

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ for β€” это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ способ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

1
for ( Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1 ; Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 ; Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3 ) Ρ‚Π΅Π»ΠΎ

for ( Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1 ; Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 ; Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3 ) Ρ‚Π΅Π»ΠΎ

Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1 ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установлСния Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠΌ. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 β€” это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ условиС, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3 опрСдСляСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠΌ послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выполнСния Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π°.

Π‘Ρ…Π΅ΠΌΠ° выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for:

  • 1. ВычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1.
  • 2. ВычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2.
  • 3. Если значСния выраТСния 2 ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ нуля (истина), выполняСтся Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π°, вычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3 ΠΈ осущСствляСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Ρƒ 2, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ (лоТь), Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ for.

БущСствСнно Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° условия всСгда выполняСтся Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ†ΠΈΠΊΠ»Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ, Ссли условиС выполнСния сразу Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

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

1
2
3
       int main()
       { int i,b;
          for (i=1; i<10; i++) b="i*i;" return 0; }

int main() { int i,b; for (i=1; i<10; i++) b=»i*i;» return 0; }

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ чисСл ΠΎΡ‚ 1 Π΄ΠΎ 9.

НСкоторыС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ Π΅Π³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π·Π° счСт возмоТности использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†ΠΈΠΊΠ»ΠΎΠΌ.

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

1
2
3
4
5
6
7
8
9
       int main()
       {  int top,  bot;
          char string[100],  temp;
          for ( top=0, bot=100 ; top < bot ; top++, bot--)
          {  temp=string[top];
             string[bot]=temp;
          }
          return 0;
        }

int main() { int top, bot; char string[100], temp; for ( top=0, bot=100 ; top < bot ; top++, bot—) { temp=string[top]; string[bot]=temp; } return 0; }

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π΅ΠΌ запись строки символов Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС, для управлСния Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ top ΠΈ bot. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° мСстС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1 ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3 здСсь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, записанных Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, ΠΈ выполняСмых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ использования ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for являСтся бСсконСчный Ρ†ΠΈΠΊΠ». Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пустоС условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π° для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ условиС ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break.

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

1
2
3
4
5
       for (;;)
       { ...
         ...  break;
         ...
       }

for (;;) { … … break; … }

Π’Π°ΠΊ ΠΊΠ°ΠΊ согласно синтаксису языка Π‘ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым, Ρ‚Π΅Π»ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° for Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ пустым. Вакая Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска.

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

1
for (i=0; t[i]<10 ; i++) ;

for (i=0; t[i]<10 ; i++) ;

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСрСмСнная Ρ†ΠΈΠΊΠ»Π° i ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ элСмСнта массива t, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ большС 10.

Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π»Π΅Π΅. Π Π°Π·Π΄Π΅Π» 1.4.8 ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ While

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Python pass

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Python pass ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания пустых Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ пустых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Python

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² с использованиСм pass.

1. инструкция pass Π² Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°

Допустим, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для удалСния всСх Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΈΠ· списка. Π’ этом случаС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ» for для ΠΎΠ±Ρ…ΠΎΠ΄Π° чисСл Π² спискС.

Если число дСлится Π½Π° 2, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΌΡ‹ добавляСм Π΅Π³ΠΎ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ список. НаконСц, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ список, содСрТащий Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ числа.

Python Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ пустыС Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ здСсь ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ pass для отсутствия ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅ if-condition.

def remove_evens(list_numbers):
    list_odds = []
    for i in list_numbers:
        if i % 2 == 0:
            pass
        else:
            list_odds.
append(i) return list_odds l_numbers = [1, 2, 3, 4, 5, 6] l_odds = remove_evens(l_numbers) print(l_odds)

Π’Ρ‹Π²ΠΎΠ΄: [1, 3, 5]

Π—Π΄Π΅ΡΡŒ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ΅ if-condition. Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ использовали ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ pass для бСздСйствия.

2. инструкция pass для пустой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π’ Python Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ абстрактных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ Ρ‚Π°ΠΊ.

def foo():
    # TODO - implement later

Π’Ρ‹Ρ…ΠΎΠ΄: IndentationError: оТидаСтся Π±Π»ΠΎΠΊ с отступом

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ pass для опрСдСлСния пустой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π£ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ инструкция, Π½ΠΎ ΠΎΠ½Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ сдСлаСт.

def foo():
    pass

МоТно Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²?

Π”Π°, Ρƒ нас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ pass Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Π•Π³ΠΎ СдинствСнная Ρ€Π°Π±ΠΎΡ‚Π° β€” ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€.

def bar():
    pass
    print('bar')
    pass


if True:
    pass
    pass
    print('True')
else:
    print('False')
    pass
    pass

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ΅Π½?

  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Python ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ пустой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ пустого Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°.
  • НаиболСС Π²Π°ΠΆΠ½ΠΎΠ΅ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° pass β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ для классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. НапримСр, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
class EmployeeDAO:

    def get_emp_by_id(self, i):
        """
        TODO: implement this function later on
        :param i: employee id
        :return: employee object
        """
        pass

    def delete_emp(self, i):
        pass


# This function will read Employees CSV Data file and return list of Employees
def read_csv_file(file):
    pass

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΉ ΠΊΠΎΠ΄ Π·Π½Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, поэтому ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

Pro Java: Java Statements

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹-выраТСния (Expression Statements)

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

a =

1; // ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅
x *= 2; // ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ посрСдством ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
i++; // ΠŸΠΎΡΡ‚Ρ„ΠΈΠΊΡΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°
—c; // ΠŸΡ€Π΅Ρ„ΠΈΠΊΡΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°
System.
out
.println(«statement»); // Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

БоставныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ (Compound Statements)

Боставным ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ (compound statement) называСтся любоС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² любого Ρ‚ΠΈΠΏΠ°, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки. Боставной ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² любой части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ согласно синтаксису Java Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

for

( int i = 0; i < 10; i++) {
Β Β  a[i]++; // Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° являСтся составным ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Β Β 
Β Β  b[i]—; // Он состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²>Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ,
} // Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки.

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (empty statement)

ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ (empty statement) Π² Java обозначаСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΎΠΉ синтаксис Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½. НапримСр, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ для указания пустого Ρ‚Π΅Π»Π° Ρ†ΠΈΠΊΠ»Π° for:

for

( int i = 0; i < 10; a[ i++]++) // Π£Π²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ элСмСнты массива
Β Β Β Β Β Β Β  /* empty */; // Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° – пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ (labeled statement)

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ (labeled statement) – это ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ имя, записанноС ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ Π½Π΅Π³ΠΎ Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ break ΠΈ continue. НапримСр:

rowLoop:

for( int r = 0; r < rows.length; r++) { // Π¦ΠΈΠΊΠ» с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ
Β Β Β  colLoop: for( int c = 0; c < columns. length; c++) { // Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½
Β Β  break rowLoop; // ИспользованиС ΠΌΠ΅Ρ‚ΠΊΠΈ
Β  }
}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ объявлСния локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (local variable)

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ пСрСмСнная (local variable), ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ просто называСмая ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, являСтся символичСским ΠΈΠΌΠ΅Π½Π΅ΠΌ мСста хранСния значСния, опрСдСляСмым Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ составного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°. ΠŸΠ΅Ρ€Π΅Π΄ использованиСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ язык Java строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСт Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ Π² Π½Π΅ΠΉ значСния ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

ΠŸΡ€ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ‚ΡƒΡ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°ΡΠΏΠΈΠ½Π°Ρ‚ΡŒΡΡ ΠΏΠΎ этому ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. Нас ΠΆΠ΄ΡƒΡ‚ Π½ΠΎΠ²Ρ‹Π΅ интСрСсныС Ρ‚Π΅ΠΌΡ‹.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пустой — Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ Ρ…ΠΈΠΌΠΈΠΊΠ° 21

    Дадим строгоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ Π·Π°Π΄Π°Π½Ρ‹ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈ А2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ай u(t) Π·Π°Π΄Π°Π½ Π½Π° пространствС U (пространство Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊ- [c.48]

β€‚β€‚β€‚β€‚ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ ΠΎΠ΄Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ свойство Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ задания U Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° А Π΅ΡΡ‚ΡŒ пространство -ΠΌΠ΅Ρ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€-функций [c.49]


    Рассмотрим ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ K u(t) v t) задаСтся Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ уравнСниСм [c.51]

    Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ (14.2.7), ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠŸΡƒΡΡ‚ΡŒ /(X, V) β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ функция, тогда [c.363]

    ВвСдём особый класс ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² β€” ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. ΠŸΡƒΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ пространство состояний Π›/ ΠΉ 1Π‘, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΠΎΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ Π² ΠΏΡ€ΡΠΌΡƒΡŽ сумму ΠΏΠΎΠΏΠ°Ρ€Π½ΠΎ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… подпространств М = [c.86]

β€‚β€‚β€‚β€‚ΠŸΡƒΡΡ‚ΡŒ Ail β€” пространство состояний q-Π±ΠΈΡ‚ΠΎΠ² [1,2], Π° А/2 β€” пространство состояний q-Π±ΠΈΡ‚ΠΎΠ² [3,4], Ρ‚ΠΎΠ³Π΄Π° АЛ β€” это подпространство Π². fi Оо А 2- Π’Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ АЛ Aii Оо Π―2 ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‡Π΅Ρ€Π΅Π· V (это изомСтричСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€). ΠŸΡƒΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Tj /Π· iβ€”Ρ€ ΠΈ Π’2 Ρ€ /Π· β€” прСобразования ошибок, Π° Pi АЛ ΠΈ Π 2 Π―2 АЛ β€” ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ прСобразования. Π’ΠΎΠ³Π΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π  = (Pi 0 P2)(V l/t) Π›4 ( 0 АЛ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ свойством для любого Ρ€ G АЛ [c.187]

β€‚β€‚β€‚β€‚ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (84,10) ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° (84,2) Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΌ прСдставлСнии ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ (84,5) Π² прСдставлСнии Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ квантования ΠΌΠΎΠΆΠ½ΠΎ пСрСнСсти Π½Π° Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΌ прСдставлСнии, Ссли ΠΎΠ½ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· сумму одночастичных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [c.394]

    НайдСм ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты произвСдСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ Π‘ = = АВ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ коэффициСнты Π‘ ΠΏ> Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты А ΠΈ, Π’ 1Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² А ΠΈ Π’  [c.32]

    Другой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ.нСзависимой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ  [c.38]

β€‚β€‚β€‚β€‚ΠŸΠ°ΠΌΡΡ‚ΡŒ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. ΠŸΡƒΡΡ‚ΡŒ О β€” мноТСство элСмСнтов, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ячСйками. Если Π° β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ ячСйка, то [c.133]

β€‚β€‚β€‚β€‚ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пусто Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ. Он ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ двумя свойствами Π°) Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π·Π° Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ Π±) Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ.  [c.237]

    ВвСдСниС расстояния позволяСт Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ классы ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ X β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСтричСскоС пространство. Π’Ρ‹Π΄Π΅Π»ΠΈΠΌ ΠΈΠ· совокупности ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², пСрСводящих Π΅Π³ΠΎ элСмСнты Π² элСмСнты этого ΠΆΠ΅ пространства, Ρ‚Ρ€ΠΈ класса ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π²Π²Π΅Π΄Π΅ΠΌ класс ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… снизу ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ А называСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ снизу числом Ρ‚ > О, Ссли для любой ΠΏΠ°Ρ€Ρ‹ элСмСнтов Π–1 ΠΈ Π–2 ΠΈΠ· X выполняСтся нСравСнство [c.141]

    ЗаймСмся собствСнными Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ эрмитовых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ ΠΆ ΠΈ Ρƒ β€” Π΄Π²Π° собствСнныС Π²Π΅ΠΊΡ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ собствСнныС числа Π½Π΅ Ρ€Π°Π²Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, ΠΈ это Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ X ΠΈ Ρƒ Π²Π·Π°ΠΈΠΌΠ½ΠΎ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹  [c.150]


    УмноТСниС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ Π°, Ρ€ ΠΈ Ρƒ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ΠΎΠ³Π΄Π° выраТСниС [c.11]

β€‚β€‚β€‚β€‚ΠœΡ‹ Π½Π΅ послСдуСм этому ΠΈ Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ установим сущСствованиС ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π’Ρ€ для Ρ€ = 1, 2,. .., Π³Π³ β€” 1. Π­Ρ‚ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ разностных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ β€” двойная бСсконСчная ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΊ β€” Ρ†Π΅Π»Ρ‹Π΅), ΠΈ ΠΏΡƒΡΡ‚ΡŒ Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сдвига [c.32]

    ВСорСма М. Π“. ΠšΡ€Π΅ΠΉΠ½Π° ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΎΠΉ структурС ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΡƒΡΡ‚ΡŒ коэффициСнты ( ) Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (1) принадлСТат [c.213]

    БистСма Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… алгСбраичСских ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ

ReactiveX — ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

КаТдая языковая рСализация ReactiveX Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π₯отя Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ совпадСний ΠœΠ΅ΠΆΠ΄Ρƒ рСализациями Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… рСализациях. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, каТдая рСализация ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ свои ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π·Π½Π°ΠΊΠΎΠΌΡ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстов Π½Π° этом языкС.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Observable ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Observable. Π­Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ эти ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ измСняСт Observable, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ шаблон Builder, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса. Π½Π° элСмСнтС Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π­Ρ‚ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Но Π² шаблонС Builder порядок, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ значСния, с Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ порядок ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ .

Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Observable Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ нСзависимо с исходным Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся источником Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°, Π½ΠΎ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ , ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Observable, созданным ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ нСпосрСдствСнно ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ReactiveX

На этой страницС сначала пСрСчислСны ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ «основными» Π² ReactiveX, ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ссылки Π½Π° страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эти ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ язык Π’ вСрсиях ReactiveX Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ эти ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π”Π°Π»Π΅Π΅ прСдставлСно Β«Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящСго для вашСго использования. Π΄Π΅Π»ΠΎ.

НаконСц, Π΅ΡΡ‚ΡŒ Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½Ρ‹ΠΉ список Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², доступных Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языковых Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ReactiveX. Они ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° страницу, которая Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ основного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ языка (Ρ‚Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Rx.NET Β«SelectManyΒ» связываСт ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° FlatMap ReactiveX, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Β«SelectManyΒ» — это Ρ€Π΅Ρ†Π΅ΠΏΡ‚.NET).

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ собствСнного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, см. БобствСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅
  1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎ катСгориям
  2. Π”Π΅Ρ€Π΅Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
  3. Алфавитный список Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

  • Create — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable с нуля, вызывая ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ
  • Defer — Π½Π΅ создавайтС Observable, ΠΏΠΎΠΊΠ° Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ, ΠΈ создайтС Π½ΠΎΠ²Ρ‹ΠΉ Observable для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ
  • ΠŸΡƒΡΡ‚ΠΎ / Никогда / Π‘Ρ€ΠΎΡΠΈΡ‚ΡŒ — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΎΡ‡Π΅Π½ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ
  • From — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ структуру Π΄Π°Π½Π½Ρ‹Ρ… Π² Observable
  • Interval — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • Just — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • Range — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Ρ‹Ρ… чисСл
  • Repeat — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ испускаСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов
  • Start — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Π’Π°ΠΉΠΌΠ΅Ρ€ — ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт ΠΎΠ΄ΠΈΠ½ элСмСнт послС Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Observable.

  • Buffer — пСриодичСски ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠ· наблюдаСмого Π² связки ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эти связки, Π° Π½Π΅ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ
  • FlatMap — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты, ΠΈΠ·Π»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ Observable, Π² Observable, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ³Π»Π°Π΄ΠΈΡ‚ΡŒ выбросы ΠΎΡ‚ Π½ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½ Observable
  • GroupBy — Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Observable Π½Π° Π½Π°Π±ΠΎΡ€ Observable, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… испускаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ элСмСнтов ΠΈΠ· исходного Observable, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π°
  • Map — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты, испускаСмыС Observable, примСняя Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту
  • Scan — ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту, испускаСмому Observable, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • Окно — пСриодичСски Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ элСмСнты ΠΈΠ· наблюдаСмого Π½Π° Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эти ΠΎΠΊΠ½Π°, Π° Π½Π΅ ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ ΠΈΡΠΏΡƒΡΠΊΠ°ΡŽΡ‚ элСмСнты ΠΈΠ· источника Observable.

  • Debounce — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ элСмСнт ΠΈΠ· Observable Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΡˆΠ΅Π» Π±Π΅Π· испускания Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ элСмСнта
  • Distinct — ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты, испускаСмыС Observable
  • ElementAt — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнт n , испускаСмый Observable
  • Filter — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты ΠΈΠ· Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проходят тСст ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°
  • First — вывСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, ΠΈΠ· Observable
  • IgnoreElements — Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ элСмСнты ΠΈΠ· Observable, Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ
  • Last — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний элСмСнт, созданный Observable
  • Sample — ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ самый послСдний элСмСнт, созданный Observable Π² пСриодичСскиС ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • Skip — ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ n элСмСнты, испущСнныС Observable
  • SkipLast — ΠΏΠΎΠ΄Π°Π²ΠΈΡ‚ΡŒ послСдниС n элСмСнтов, испущСнных Observable
  • Take — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ n элСмСнтов, испускаСмых Observable
  • TakeLast — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС n элСмСнтов, испущСнных Observable

ОбъСдинСниС Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ…

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с нСсколькими источниками Observable для создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ Observable

  • И / Π—Π°Ρ‚Π΅ΠΌ / Когда — ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ элСмСнтов, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… двумя ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Observable с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pattern ΠΈ Plan посрСдников
  • CombineLatest — ΠΊΠΎΠ³Π΄Π° элСмСнт испускаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡƒΡ… Observable, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ послСдний элСмСнт, созданный ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Observable Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ элСмСнты Π½Π° основС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
  • Join — ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ элСмСнты, испускаСмыС двумя Observable всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° элСмСнт ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Observable испускаСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² соотвСтствии с элСмСнтом, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Observable
  • ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ — ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΡ‚Π΅ΠΌ объСдинСния ΠΈΡ… выбросов
  • StartWith — ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ элСмСнтов ΠΈΠ· источника Observable
  • Switch — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт Observables, Π² ΠΎΠ΄ΠΈΠ½ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт элСмСнты, испускаСмыС послСдними ΠΈΠ· этих Observable
  • Zip — ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ выбросы Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Observable вмСстС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π° основС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ послС ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΎΡ‚ Observable

  • Catch — восстановлСниС послС увСдомлСния onError ΠΏΡƒΡ‚Π΅ΠΌ продолТСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π΅Π· ошибок
  • Retry — Ссли источник Observable отправляСт ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ onError , ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π΅Π³ΠΎ Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Π±Π΅Π· ошибок

ΠΠ°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΌΡƒΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… слуТб

Набор ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Observables

  • Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° — ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ выбросы ΠΈΠ· наблюдаСмого Π²ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ
  • Do — зарСгистрируйтС дСйствиС для выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… событий ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°
  • ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ / Π”Π΅ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ — ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ увСдомлСния ΠΊΠ°ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты, ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ этот процСсс
  • ObserveOn — ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ этот Observable
  • Serialize — Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Observable Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ сСриализованныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΈ вСсти сСбя Ρ…ΠΎΡ€ΠΎΡˆΠΎ
  • ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ — Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с выбросами ΠΈ увСдомлСниями ΠΎΡ‚ Observable
  • SubscribeOn — ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Observable Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ подпискС Π½Π°
  • TimeInterval — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт элСмСнты, Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испускаСт ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ этими выбросами
  • Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ — Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ источника Observable, Π½ΠΎ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС, Ссли ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ истСкаСт Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΠ·Π»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… элСмСнтов
  • Timestamp — ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту, испускаСмому Observable
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ — создайтС ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ рСсурс, срок слуТбы ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρƒ Observable

УсловныС ΠΈ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Observables ΠΈΠ»ΠΈ элСмСнтов, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Observables

  • All — ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, всС Π»ΠΈ элСмСнты, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Observable, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ критСриям
  • Amb — ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ исходных Observable, ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ всС элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· этих Observable, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ элСмСнт
  • Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ — ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, испускаСт Π»ΠΈ Observable ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт ΠΈΠ»ΠΈ Π½Π΅Ρ‚
  • DefaultIfEmpty — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΈΠ· источника Observable ΠΈΠ»ΠΈ элСмСнт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли источник Observable Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ испускаСт
  • SequenceEqual — ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΈΡΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Π»ΠΈ Π΄Π²Π° Observable ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов
  • SkipUntil — ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Observable, ΠΏΠΎΠΊΠ° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Observable Π½Π΅ выдаст элСмСнт
  • SkipWhile — ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты, созданныС Observable, ΠΏΠΎΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ
  • TakeUntil — ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ элСмСнты, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Observable послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Observable испускаСт элСмСнт ΠΈΠ»ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.
  • TakeWhile — ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ элСмСнты, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Observable послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ условиС становится Π»ΠΎΠΆΠ½Ρ‹ΠΌ

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со всСй ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ элСмСнтов, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Observable

  • Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — вычисляСт срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ чисСл, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ это срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • Concat — ΠΈΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ выбросы ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Observable, Π½Π΅ чСрСдуя ΠΈΡ…
  • Count — ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство элСмСнтов, Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… источником Observable, ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • Max — ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π° элСмСнта с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Observable
  • Min — ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ элСмСнт с минимальной ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ, создаваСмый Observable
  • Reduce — ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту, испускаСмому Observable, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  • Sum — Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ сумму чисСл, Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… Observable, ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ эту сумму

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ противодавлСния

  • ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ противодавлСния — стратСгии для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Observables, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ производят элСмСнты быстрСС, Ρ‡Π΅ΠΌ ΠΈΡ… Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ ΠΈΡ…

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΡΠΎΠ±Ρ‹Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΎΠΉ подписки

  • Connect — Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΌΡƒ Observable Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ элСмСнтов своим подписчикам
  • ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Observable Π² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Observable
  • RefCount — Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Connectable Observable вСсти сСбя ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Observable
  • Replay — ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΠΈ видят ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… элСмСнтов, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Observable Π½Π°Ρ‡Π°Π» Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ элСмСнты

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ прСобразования Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ…

  • To — ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Observable Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ»ΠΈ структуру Π΄Π°Π½Π½Ρ‹Ρ…

Π­Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ReactiveX Observable.

Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Observable
, ΠΈΠ·Π»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт
ВсСго
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ Π²ΠΎ врСмя подписки
Начало
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΈΠ· Action , Callable , Runnable ΠΈΠ»ΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π² этом Ρ€ΠΎΠ΄Π΅, Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΎ врСмя подписки
Из
послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
Π’Π°ΠΉΠΌΠ΅Ρ€
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свои выбросы ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ массива , Iterable ΠΈΠ»ΠΈ Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π² этом Ρ€ΠΎΠ΄Π΅
Из
, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² Π΅Π³ΠΎ ΠΈΠ· Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ
Начало
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ свою ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ
ΠΈΠ·
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов
ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ
с нуля, с настраиваСмой Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ
Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ
Π·Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ подписавшСгося Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Ρ
ΠžΡ‚ΡΡ€ΠΎΡ‡ΠΊΠ°
, ΠΈΡΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл
Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»
послС ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ
Π’Π°ΠΉΠΌΠ΅Ρ€
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π±Π΅Π· Π²Ρ‹Π΄Π°Ρ‡ΠΈ элСмСнтов
ΠŸΡƒΡΡ‚ΠΎΠΉ
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚
Никогда
Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Observable, объСдинив Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Observable
ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π° всСх элСмСнтов ΠΈΠ· всСх Observables Π² любом порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹
БлияниС
ΠΈ испускаСт всС элСмСнты ΠΈΠ· всСх Observable, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Observable Π·Π° Ρ€Π°Π·
Concat
, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ комбинируя элСмСнты ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Observable, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Observables испускаСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт
ΠŸΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ индСкс
всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° любой ΠΈΠ· Observables испускаСт Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт
ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ПослСдниС
всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° элСмСнт излучаСтся ΠΎΠ΄Π½ΠΈΠΌ Observable Π² ΠΎΠΊΠ½Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ элСмСнтом, ΠΈΠ·Π»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ
ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ
Ρ‡Π΅Ρ€Π΅Π· посрСдников ΠžΠ±Ρ€Π°Π·Π΅Ρ† ΠΈ План
И / Вогда / Когда
ΠΈ испускаСт элСмСнты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· самых послСдних ΠΈΠ· этих Observables
ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ
Π― Ρ…ΠΎΡ‡Ρƒ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· Observable послС ΠΈΡ… прСобразования
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ
ΠšΠ°Ρ€Ρ‚Π°
, испуская всС элСмСнты, испускаСмыС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Observables
FlatMap
ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ Π·Π° Ρ€Π°Π·, Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ
ConcatMap
Π½Π° основС всСх ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов
Π‘ΠΊΠ°Π½
, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ Π½ΠΈΠΌ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
ΠžΡ‚ΠΌΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
Π² ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ Π΄ΠΎ выпуска ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°
Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнты, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Observable, Π²ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ
Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ увСдомлСния элСмСнтов ΠΈ ΠΈΠ· Observable Π² элСмСнты ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ…
, Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΈΡ… Π² Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ
, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ снова Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
ДСматСриализация
Π― Ρ…ΠΎΡ‡Ρƒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС элСмСнты, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Observable, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ / ошибкС
Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнты
Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ Observable, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² элСмСнты ΠΊ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
ΠΠ°Ρ‡Π°Ρ‚ΡŒ с
Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ пуста
DefaultIfEmpty
Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠ· наблюдаСмого ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊΠ°ΠΊ Π±ΡƒΡ„Π΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²
Π‘ΡƒΡ„Π΅Ρ€
содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ элСмСнты
TakeLastBuffer
Π― Ρ…ΠΎΡ‡Ρƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Observable Π½Π° нСсколько Observable
Окно
, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты оказались Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ Observable
Π“Ρ€ΡƒΠΏΠΏΠ° ΠΏΠΎ
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ элСмСнт, созданный Observable:
послСдний элСмСнт, созданный Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ
ПослСдняя
СдинствСнный ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ выпустил
ΠžΠ΄Π½ΠΎΠΌΠ΅ΡΡ‚Π½Ρ‹ΠΉ
ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ Π²Ρ‹Π΄Π°Π»
ΠŸΠ΅Ρ€Π²Π°Ρ
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΈΠ· наблюдаСмого
, ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Ρ‹Π²Π°Ρ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρƒ
Π€ΠΈΠ»ΡŒΡ‚Ρ€
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΎΠ²Π°Ρ€
ΠŸΠ΅Ρ€Π²Π°Ρ
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт с
Π’ΠΎΠ·ΡŒΠΌΠΈΡ‚Π΅
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний элСмСнт
ПослСдняя
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ²Π°Ρ€ n
ElementAt
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСмСнтов
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ послС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… n ΡˆΡ‚.
ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих элСмСнтов Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρƒ
SkipWhile
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ послС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· сСкунду Observable Π²Ρ‹Π΄Π°Π΅Ρ‚ элСмСнт
ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎ
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, ΠΊΡ€ΠΎΠΌΠ΅ послСдних
Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΡ€ΠΎΠΌΠ΅ послСдних n ΡˆΡ‚.
SkipLast
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· этих элСмСнтов Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρƒ
TakeWhile
, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ источник Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ.
SkipLast
, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов, испускаСмых послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Observable испускаСт элСмСнт
ΠžΡ‚
Π΄ΠΎ
ΠΏΡƒΡ‚Π΅ΠΌ пСриодичСской Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ наблюдаСмого
ΠžΠ±Ρ€Π°Π·Π΅Ρ†
ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π΄Π°Ρ‡ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнтов, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π½Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
Debounce
ΠΏΡƒΡ‚Π΅ΠΌ подавлСния элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚Π°ΠΌΠΈ ΡƒΠΆΠ΅ Π²Ρ‹Π΄Π°Π½Π½Ρ‹Ρ… элСмСнтов
ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ
Ссли ΠΎΠ½ΠΈ сразу ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π·Π° элСмСнтом, ΠΎΠ½ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‚
DistinctUntilChanged
, ΠΎΡ‚Π»ΠΎΠΆΠΈΠ² подписку Π½Π° Π½Π΅Π³ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π°Ρ‡Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ элСмСнты
Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° подписки
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· Observable Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Observables, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ испустил элСмСнт
Amb
Π― Ρ…ΠΎΡ‡Ρƒ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ всю ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Observable
ΠΈ испускаСт ΠΎΠ΄Π½ΠΎ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, ΠΏΡ€ΠΎΡˆΠ»ΠΈ Π»ΠΈ всС элСмСнты ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ тСст
ВсС
ΠΈ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, испустил Π»ΠΈ Observable ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСст)
Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚
ΠΈ испускаСт ΠΎΠ΄Π½ΠΎ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, испустил Π»ΠΈ Observable ΠΈΠ»ΠΈ Π½Π΅Ρ‚ элСмСнтов
ΠŸΡƒΡΡ‚ΠΎ
ΠΈ ΠΈΡΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° Π»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Observable
SequenceEqual
ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‚ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ всСх своих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ сумму всСх своих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π‘ΡƒΠΌΠΌΠ°
ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ число, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, сколько элСмСнтов Π±Ρ‹Π»ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ
ΠΈ Π²Ρ‹Π΄Π°Ρ‚ΡŒ элСмСнт с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
Макс
ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ элСмСнт с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
ΠΌΠΈΠ½.
, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ агрСгирования ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΈ Π²Ρ‹Π΄Π°Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚
Π‘ΠΊΠ°Π½
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов, созданных Observable, Π² ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…
К
Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π» с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ
ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π°
ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ
ObserveOn
Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Observable Π²Ρ‹Π·Ρ‹Π²Π°Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ дСйствиС, ΠΊΠΎΠ³Π΄Π° происходят ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ события
Π”ΠΎ
Π― Ρ…ΠΎΡ‡Ρƒ Observable, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ‚ΡŒ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ± ошибкС
Бросок
, Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ истСкаСт, Π½ΠΎ Π½Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ элСмСнт
Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚
Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Observable ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ восстановился
ΠΈΠ· Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π° ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Observable
Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚
ΠΈΠ· увСдомлСния ΠΎΠ± ошибкС восходящСго ΠΏΠΎΡ‚ΠΎΠΊΠ°
Π£Π»ΠΎΠ²
, ΠΏΠΎΠΏΡ‹Ρ‚Π°Π²ΡˆΠΈΡΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° восходящий Observable
ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΡƒ
Π― Ρ…ΠΎΡ‡Ρƒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ рСсурс с Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΆΠΈΠ·Π½ΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ Observable
ИспользованиС
Π― Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Observable ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Future , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ блокируСтся, ΠΏΠΎΠΊΠ° Observable Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚
Начало
Π― Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Observable Π½Π΅ Π½Π°Ρ‡Π°Π» ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ элСмСнты подписчикам, ΠΏΠΎΠΊΠ° ΠΈΡ… Π½Π΅ спросят
ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ
, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний элСмСнт Π² своСй ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΠŸΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ
, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ подписался послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π°Ρ‡Π°Π»Π°ΡΡŒ
ΠŸΠΎΠ²Ρ‚ΠΎΡ€
, Π½ΠΎ я Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ исчСз, ΠΊΠΎΠ³Π΄Π° всС Π΅Π³ΠΎ подписчики откаТутся ΠΎΡ‚ подписки
RefCount
Π° ΠΏΠΎΡ‚ΠΎΠΌ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ
ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ
Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

ΠšΠ°Π½ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° основных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ .Π”Ρ€ΡƒΠ³ΠΈΠ΅ записи относятся ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ языку Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Π½Π΅ основного Π½Π°Π±ΠΎΡ€Π° ReactiveX ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

std :: is_empty — cppreference.com

шаблон <класс T>
struct is_empty;

(начиная с C ++ 11)

Если T являСтся пустым Ρ‚ΠΈΠΏΠΎΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠΌ класса Π±Π΅Π· объСдинСния, Π±Π΅Π· нСстатичСских элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 0, Π±Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π±Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ классы, Π° Π½Π΅ нСпустыС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы) прСдоставляСт константу Ρ‡Π»Π΅Π½Π° , Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎΠ΅ истинС.Для любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΎΠΆΠ½ΠΎ.

Если T являСтся Ρ‚ΠΈΠΏΠΎΠΌ нСсоюзного класса, T Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

ПовСдСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая добавляСт спСциализации для is_empty ΠΈΠ»ΠΈ is_empty_v (начиная с C ++ 17), Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ.

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ шаблона

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] Π¨Π°Π±Π»ΠΎΠ½ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

template
inline constexpr bool is_empty_v = is_empty :: value;

(начиная с C ++ 17)

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ элСмСнтов

true, Ссли T — пустой Ρ‚ΠΈΠΏ класса, false Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС
(общСдоступная статичСская константа-Ρ‡Π»Π΅Π½)

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹

ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² bool, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
(общСдоступная функция-Ρ‡Π»Π΅Π½)
Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
(общСдоступная функция-Ρ‡Π»Π΅Π½)

Π’ΠΈΠΏΡ‹ элСмСнтов

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

НаслСдованиС ΠΎΡ‚ пустых Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ класса ΠΈΠ·-Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ пустой Π±Π°Π·Ρ‹.

std :: is_empty ΠΈ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ характСристики Ρ‚ΠΈΠΏΠ° ΡΠ²Π»ΡΡŽΡ‚ΡΡ пустыми классами.

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] ΠŸΡ€ΠΈΠΌΠ΅Ρ€

 #include 
#include 

struct A {};

struct B {
    int m;
};

struct C {
    static int m;
};

struct D {
    Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ~ D ();
};

союз E {};

struct F {
    [[no_unique_address]] E e;
};

int main ()
{
    std :: cout << std :: boolalpha;
    std :: cout << "A" << std :: is_empty  :: value << '\ n';
    std :: cout << "B" << std :: is_empty  :: value << '\ n';
    std :: cout << "C" << std :: is_empty  :: value << '\ n';
    std :: cout << "D" << std :: is_empty  :: value << '\ n';
    std :: cout << "E" << std :: is_empty  :: value << '\ n';
    std :: cout << "F" << std :: is_empty  :: value << '\ n'; // Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ зависит ΠΎΡ‚ ABI

} 

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄:

 Π˜ΡΡ‚ΠΈΠ½Π°
B Π»ΠΎΠΆΠ½ΠΎ
C ΠΏΡ€Π°Π²Π΄Π°
D лоТь
E лоТь
F ΠΏΡ€Π°Π²Π΄Π° 

[ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ] Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

провСряСт, Π½Π΅ являСтся Π»ΠΈ Ρ‚ΠΈΠΏ Ρ‚ΠΈΠΏΠΎΠΌ класса Π±Π΅Π· объСдинСния
(шаблон класса) [ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ]

JSTL пустой ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ - gayleforce

На этой Π½Π΅Π΄Π΅Π»Π΅ я ΠΈ ΠΌΠΎΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΈΡ‰ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с интСрСсной ΠΏΡ€ΠΈΡ‡ΡƒΠ΄ΠΎΠΉ JSTL. Код выглядСл ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

  
  
  

ΠŸΠ ΠžΠ‘Π›Π•ΠœΠ

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»Π°ΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Ρ‹Π± ΠΊΠΎΡ€ΠΌΠΈΠ»ΠΈ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π» Π°ΠΊΠ²Π°Ρ€ΠΈΡƒΠΌ пуст ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Код

  

Π²Π΅Π» сСбя Ρ‚Π°ΠΊ ΠΆΠ΅ странно. Но Π² любом случаС ΠΌΡ‹ Π±Ρ‹Π»ΠΈ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ наш синтаксис Π²Π΅Ρ€Π΅Π½.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ вопрос: WTF?

ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ экзСмпляр aquarium ΠΈΠ· Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ getFish () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ java.util.Collection. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ нас Π½Π΅ Π²ΠΎΠ»Π½ΡƒΠ΅Ρ‚ рСализация, Π½Π°ΠΌ просто Π½ΡƒΠΆΠ½Π° наша Ρ€Ρ‹Π±Π°. ВСорСтичСски.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ покопались Π² ΠΊΠΎΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° getFish () Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ наша ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ Π½Π° самом Π΄Π΅Π»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ HashSet. А JSTL Π²Π΅Π΄Π΅Ρ‚ сСбя Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ странно ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ пустому ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ: ΠΎΠ½ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с java.util. Set. ΠœΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² JSTL 1.1 ΠΈΠ»ΠΈ 1.2, ΠΈ, ΠΊ соТалСнию, ΠΌΡ‹ ΠΏΠΎΠΊΠ° застряли Π½Π° JSTL 1.0. К соТалСнию, это заставляСт нас Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° эта ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ с Π½Π΅ΠΉ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ.

ΠŸΠžΠ§Π•ΠœΠ£?

Начиная с JSTL 1.1, «… язык Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ спСцификации JSP (JSP 2.0)Β». [ΠΈΠ· спСцификации JSTL 1.1]

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΎΠΌΠ΅Ρ€Π° вСрсий Π½Π΅ всСгда ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ с Ρ‡Π΅ΠΌ совмСстимо, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ вСрсии JSTL с ΠΊΠ°ΠΊΠΈΠΌΠΈ вСрсиями JSP подходят:

 JSTL 1.0> JSP 1.3; JSTL 1.1> JSP 2.0; JSTL 1.2> JSP 2.1; 

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сравним характСристики пустого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Из спСцификации JSTL 1.0:

Для ΠΎΡ†Π΅Π½ΠΊΠΈ пустого A:

Из спСцификации JSP 2.0 ΠΈ 2.1, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ:

Для ΠΎΡ†Π΅Π½ΠΊΠΈ пустого A:

Π Π°Π·Π½ΠΈΡ†Π° послСднСС сравнСниС.Π’ Π±ΠΎΠ»Π΅Π΅ старой вСрсии ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрфСйс List, Π² Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΠΎΠΉ - интСрфСйс Collection. Бписок - это ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, поэтому всС, Ρ‡Ρ‚ΠΎ являСтся ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠ΅ΠΉ, Π½ΠΎ Π½Π΅ список, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² JSTL 1.0. НапримСр:

Π Π•Π€ΠΠšΠ’ΠžΠ 

Π•ΡΡ‚ΡŒ 2 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

1: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.

2: Если это Π½Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π‘Π°ΠΌΠΎΠ΅ приятноС Π² «пустом» состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊ пустыС, Ρ‚Π°ΠΊ ΠΈ пустыС списки. Наш ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ:

  
  
  

Нравится:

Нравится Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ...

БвязанныС

ΠŸΡ€Π°ΠΉΠΌΠ΅Ρ€ JSTL, Ρ‡Π°ΡΡ‚ΡŒ 1: язык Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

A Π“Ρ€ΡƒΠ½Ρ‚ΠΎΠ²ΠΊΠ° JSTL, Π”Π΅Ρ‚Π°Π»ΡŒ 1

УпроститС обслуТиваниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ JSP, избСгая сцСнариСв элСмСнты

ΠœΠ°Ρ€ΠΊ Колб
ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ 11 фСвраля 2003 Π³.

ΠšΠΎΠ½Ρ‚Π΅Π½Ρ‚ сСрии:

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ β„– ΠΈΠ· β„– Π² сСрии: ΠŸΡ€Π°ΠΉΠΌΠ΅Ρ€ JSTL, Π§Π°ΡΡ‚ΡŒ 1

https: // www.ibm.com/developerworks/library/?series_title_by=a+jstl+primer

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ содСрТаниСм этой сСрии.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сСрии: A JSTL primer, Part 1

Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ содСрТаниСм этой сСрии.

ВСхнология JavaServer Pages (JSP) - это стандартная тСхнология уровня прСдставлСния для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2EE.ВСхнология JSP прСдоставляСт ΠΊΠ°ΠΊ элСмСнты сцСнария, Ρ‚Π°ΠΊ ΠΈ дСйствия для Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ вычислСний, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для динамичСского создания содСрТимого страницы. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ элСмСнты ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² страницу JSP для выполнСния, ΠΊΠΎΠ³Π΄Π° страница отобраТаСтся Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ДСйствия ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² Ρ‚Π΅Π³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ HTML ΠΈΠ»ΠΈ XML ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит тСкст шаблона страницы JSP.Π•ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ горстка дСйствий, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ стандартныС Π² спСцификации JSP, Π½ΠΎ начиная с JSP 1.1, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогли ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои собствСнныС дСйствия Π² Π²ΠΈΠ΄Π΅ настраиваСмого Ρ‚Π΅Π³Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π΅Π³ΠΎΠ² JSP (JSTL) прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‚Π΅Π³ΠΎΠ² JSP 1.2. ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±Ρ‰ΡƒΡŽ для ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра сСрвСрных Java ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ стандартныС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ уровня прСдставлСния Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ условный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, JSTL позволяСт JSP Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° потрСбностях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Π½Π΅ "ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ колСсо »для этих ΠΎΠ±Ρ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ элСмСнты скрипта JSP: скриптлСты, выраТСния ΠΈ объявлСния. Условный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ с использованиСм Ρ‚Ρ€Π΅Ρ… скриптлСтов, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² листингС 1. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° встраиваниС исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΠ΄Π° Java) Π½Π° страницу, ΠΎΠ΄Π½Π°ΠΊΠΎ элСмСнты сцСнариСв, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠ»ΠΎΠΆΠ½ΡΡŽΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ обслуТивания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для страниц JSP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚.ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скриптлСта Π² листингС 1, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, критичСски зависит ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ€Π° скоб. Π’Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… скриптлСтов Π²Π½ΡƒΡ‚Ρ€ΠΈ условного ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ нанСсти ΡƒΡ‰Π΅Ρ€Π±, Ссли синтаксичСская ошибка Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π²Π²Π΅Π΄Π΅Π½Ρ‹, ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ сообщСниС ΠΎΠ± ошибкС, ΠΊΠΎΠ³Π΄Π° страница компилируСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ JSP.

Листинг 1. РСализация условноС содСрТаниС Ρ‡Π΅Ρ€Π΅Π· скриптлСты
 <% if (user. getRole () == "Ρ‡Π»Π΅Π½")) {%>
                

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ, участник!

<%} else {%>

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ, Π³ΠΎΡΡ‚ΡŒ!

<%}%>

Для устранСния Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ трСбуСтся изрядный ΠΎΠΏΡ‹Ρ‚ программирования. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° страницС JSP ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€ΠΎΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ разбираСтся Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ страницы ΠΈ графичСском Π΄ΠΈΠ·Π°ΠΉΠ½Π΅, элСмСнты сцСнария Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ страницы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° программиста ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.Π­Ρ‚ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… JSP-страниц - нСпростая Π·Π°Π΄Π°Ρ‡Π°. Упаковывая ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² стандартизированный Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‚Π΅Π³ΠΎΠ², JSTL позволяСт Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ JSP ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² элСмСнтах сцСнария ΠΈ ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ связанного обслуТивания расходы.

JSTL 1.0

Π’Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² июнС 2002 Π³ΠΎΠ΄Π°, JSTL 1. 0 состоит ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Ρ‚Π΅Π³ΠΎΠ². ( ядро ​​, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ , xml ΠΈ sql ) ΠΈ ΠΏΠ°Ρ€Π° Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния ( ScriptFreeTLV, ΠΈ Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎTaglibsTLV ).Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π΅Π³ΠΎΠ² core обСспСчиваСт настраиваСмыС дСйствия для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия, Π° Ρ‚Π°ΠΊΠΆΠ΅ для выполнСния итСрация ΠΈ ΡƒΡΠ»ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ содСрТания страницы. Он Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Ρ‚Π΅Π³ΠΈ для создания ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с URL-адрСсами. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π΅Π³ΠΎΠ² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° , ΠΊΠ°ΠΊ слСдуСт ΠΈΠ· названия, опрСдСляСт дСйствия для форматирования Π΄Π°Π½Π½Ρ‹Ρ…, Π² частности чисСл ΠΈ Π΄Π°Ρ‚. Он Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ страниц JSP с использованиСм Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² рСсурсов.Π’ xml Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Π΅Π³ΠΈ для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, прСдставлСнными Ρ‡Π΅Ρ€Π΅Π· XML, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° sql опрСдСляСт дСйствия для запроса рСляционных Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π²Π° Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² JSTL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ стандарты кодирования Π² своих прилоТСниях JSP. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ScriptFreeTLV Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ использованиС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² элСмСнтов сцСнария JSP - скриптлСты, выраТСния ΠΈ объявлСния - Π½Π° страницС JSP.Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ PermittedTaglibsTLV Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ограничСния Π½Π°Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² JSTL), ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ страницы JSP прилоТСния.

Π₯отя JSTL Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ станСт ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2EE, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСбольшой число сСрвСров ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ сСгодня. Эталонная рСализация для JSTL 1.0 доступСн ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² Jakarta ΠΎΡ‚ Apache Software Foundation. ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (см. РСсурсы).Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² Π² эталонная рСализация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² любой сСрвСр ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ спСцификации JSP 1.2 ΠΈ Servlet 2.3, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ JSTL.

Π―Π·Ρ‹ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π’ JSP 1.2 Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ дСйствий JSP ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ статичСского ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки ΠΈΠ»ΠΈ, Π³Π΄Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ, выраТСния. Π’ листингС 2, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, статичСскиС значСния ΡƒΠΊΠ°Π·Π°Π½Ρ‹ для name ΠΈ property Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ этого дСйствия , Π° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для указания значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° .Π­Ρ‚ΠΎ дСйствиС ΠΈΠΌΠ΅Π΅Ρ‚ эффСкт присвоСниС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° запроса Π½Π°Π·Π²Π°Π½Π½ΠΎΠΌΡƒ свойству bean-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ВыраТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ значСниями Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запроса . ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ СдинствСнным ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ, встроСнным Π² ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ JSP для указания Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° цСнности динамичСски.

Листинг 2. ДСйствиС JSP. Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запроса Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запроса ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ риску ΠΊ Ρ‚Π΅ΠΌ ΠΆΠ΅ вопросам обслуТивания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ элСмСнты сцСнария. Π—Π° это ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ JSTL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для указания динамичСских значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². ВмСсто использования ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… JSP-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для ДСйствия JSTL ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ с использованиСм ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ языка Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (EL).EL прСдоставляСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, срСдства доступа ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ для извлСчСния ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, находящимися Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ JSP. EL слабо основан Π½Π° EcmaScript (см. Π Π°Π·Π΄Π΅Π» РСсурсы) ΠΈ язык XML Path (XPath), поэтому Π΅Π³ΠΎ синтаксис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π°ΠΌ страниц, Ρ‚Π°ΠΊ ΠΈ программистам. EL ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° поиск ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΈΡ… свойств, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ нСслоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π½ΠΈΠΌΠΈ; это Π½Π΅ язык программирования ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ скрипт язык.Однако Π² сочСтании с Ρ‚Π΅Π³Π°ΠΌΠΈ JSTL ΠΎΠ½ обСспСчиваСт слоТноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² простых ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… обозначСниях. ВыраТСния EL Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ Π΄ΠΎΠ»Π»Π°Ρ€Π° ($), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ({}), ΠΊΠ°ΠΊ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π² ЛистингС 3.

Листинг 3. ДСйствиС JSTL ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ EL Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ
  

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ со статичСским тСкстом для создания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ динамичСского Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° посрСдством ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 4.ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ выраТСния состоят ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² доступа, Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, хранящиСся Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. EL ΠΈΠΌΠ΅Π΅Ρ‚ 11 Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… 11 нСявным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ EL. ВсС прСдполагаСтся, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ относятся ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом. АксСссоры ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для получСния свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ элСмСнтов ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ фиксированныС значСния - числа, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки, логичСскиС ΠΈΠ»ΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ значСния.ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹.

Листинг 4. ОбъСдинСниС статичСского тСкста ΠΈ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ EL для указания динамичСского Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
  

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ

JSP API Ρ‡Π΅Ρ€Π΅Π· дСйствиС позволяСт Π΄Π°Π½Π½Ρ‹ΠΌ Π±Ρ‹Ρ‚ΡŒ хранятся ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… областСй Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ JSP.JSTL Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, прСдоставляя Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия для назначСния ΠΈ удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² этих ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, EL обСспСчиваСт Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ. Π’ частности, любой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ появляСтся Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ EL, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· нСявных слов EL автоматичСски прСдполагаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящийся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠžΠ±Π»Π°ΡΡ‚ΠΈ JSP:

Как Π²Ρ‹ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, хранящиСся Π² области дСйствия страницы, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° этой страницы ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ запросу.ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, хранящиСся Π² области запроса, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ всСх страниц, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запрос (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ запроса встрСчаСтся ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΈΠ»ΠΈ дСйствий). Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ хранится Π² области сСанса, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ Π»ΡŽΠ±Ρ‹ΠΌΠΈ страницами, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²ΠΎ врСмя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сСанса Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ HttpSession , связанный с взаимодСйствиСм этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ·Π½Π°Π½ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ).ΠžΠ±ΡŠΠ΅ΠΊΡ‚, хранящийся Π² области прилоТСния, доступСн со всСх страниц ΠΈ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ само Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° JSP).

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ сохраняСтся Π² области дСйствия ΠΏΡƒΡ‚Π΅ΠΌ сопоставлСния символьной строки с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ объСм. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠ· области, прСдоставив Ρ‚ΠΎΡ‚ ΠΆΠ΅ символьная строка. Π‘Ρ‚Ρ€ΠΎΠΊΠ° ищСтся Π² сопоставлСнии области, Π° сопоставлСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ возвращаСтся.Π’ API сСрвлСтов Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ области. Π’ контСкстС EL, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ строку, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, которая привязана ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сопоставлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Π’ EL ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Π½Π΅ связанныС с нСявными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, хранящиСся Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… областях JSP.Π›ΡŽΠ±ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сначала провСряСтся Π½Π° соотвСтствиС ΠΎΠ±Π»Π°ΡΡ‚ΡŒ страницы, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ запроса, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ сСанса ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ прилоТСния, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, совпадаСт Π»ΠΈ имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящийся Π² этой области. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ совпадСниС возвращаСтся ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ EL. ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ EL ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ относящиСся ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π’ Π±ΠΎΠ»Π΅Π΅ тСхничСских Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, оцСниваСтся с использованиСм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° findAttribute () ΠΌΠ΅Ρ‚ΠΎΠ΄Π° PageContext экзСмпляр, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ страницы Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ встрСчаСтся для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ запроса.Имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ пСрСдаСтся Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт поиск Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… области, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, для Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ совпадСниС возвращаСтся ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° findAttribute () . Если Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Атрибут находится Π² любой ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… областСй, возвращаСтся null .

Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ области видимости ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… областСй видимости JSP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ EL.Если ΠΈΠΌ присвоСны Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², прСдставлСнных Π² JSP для установка Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Бюда Π²Ρ…ΠΎΠ΄ΠΈΡ‚ встроСнный дСйствиС, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ setAttribute () , ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ нСсколькими ΠΈΠ· классы Π² Servlet API. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚Π΅Π³ΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π‘Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ JSTL ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² для использования Π² качСствС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

НСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ 11 нСявных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² EL пСрСчислСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1. НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠ½ΠΈ с нСявными ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ JSP (ΠΈΡ… всСго Π΄Π΅Π²ΡΡ‚ΡŒ), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Ρ‰ΠΈΠΉ для ΠΎΠ±ΠΎΠΈΡ….

Π’Π°Π±Π»ΠΈΡ†Π° 1. НСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ EL
ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ОписаниС
JSP pageContext ЭкзСмпляр PageContext соотвСтствуСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницы
ΠžΠ±Π»Π°ΡΡ‚ΠΈ дСйствия pageScope A ΠšΠ°Ρ€Ρ‚Π° , ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΈΠΌΠ΅Π½Π° ΠΈ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² области страницы
requestScope A Map , связывая ΠΈΠΌΠ΅Π½Π° ΠΈ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² области запроса
sessionScope A Map , связывая ΠΈΠΌΠ΅Π½Π° ΠΈ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² области сСанса
applicationScope A Map , связывая ΠΈΠΌΠ΅Π½Π° ΠΈ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² области прилоТСния
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса param A ΠšΠ°Ρ€Ρ‚Π° , хранящая ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
paramValues ​​ A ΠšΠ°Ρ€Ρ‚Π° , хранящая всС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΊΠ°ΠΊ Π‘Ρ‚Ρ€ΠΎΠΊΠ° массивы
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ A ΠšΠ°Ρ€Ρ‚Π° , хранящая ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ значСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
headerValues ​​ A ΠšΠ°Ρ€Ρ‚Π° , хранящая всС значСния Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запросов Π² Π²ΠΈΠ΄Π΅ Π‘Ρ‚Ρ€ΠΎΠΊΠ° массивов
Π€Π°ΠΉΠ»Ρ‹ cookie cookie A ΠšΠ°Ρ€Ρ‚Π° для хранСния Ρ„Π°ΠΉΠ»ΠΎΠ² cookie сопровоТдСниС запроса ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ initParam A ΠšΠ°Ρ€Ρ‚Π° , хранящая контСкст ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Π±-прилоТСния ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JSP ΠΈ EL ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ( pageContext ), Π΄Ρ€ΡƒΠ³ΠΈΠ΅ нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JSP ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ доступны ΠΈΠ· EL.ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ pageContext ΠΈΠΌΠ΅Π΅Ρ‚ свойства для доступа ΠΊΠΎ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… восьми нСявных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² JSP. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, это основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π΅Π³ΠΎ срСди нСявных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² EL.

ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ EL ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΈΡΡŒ Ρ€Π°Π½Π΅Π΅. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для поиска ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… области, Π° Π½Π΅ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° процСсс ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ поиска, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ EL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для получСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ запроса ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Π΅, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π° ΠΊΠ°Ρ€Ρ‚. ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠ°Ρ€Ρ‚Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ°Ρ€Π΅ просто Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° запроса ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π² фактичСском запросС. Вторая ΠΊΠ°Ρ€Ρ‚Π° Π² каТдая ΠΏΠ°Ρ€Π° позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.ΠšΠ»ΡŽΡ‡ΠΈ Π½Π° этих ΠΊΠ°Ρ€Ρ‚Π°Ρ… ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π° значСния массивы String ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся СдинствСнным ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°.

НСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ cookie обСспСчиваСт доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ cookie, установлСнным ΠΏΠΎ запросу. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° всСх Ρ„Π°ΠΉΠ»ΠΎΠ² cookie, связанных с запросом, Π² Cookie ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… свойства этих Ρ„Π°ΠΉΠ»ΠΎΠ² cookie.

ПослСдний нСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ EL, initParam , прСдставляСт собой ΠΊΠ°Ρ€Ρ‚Ρƒ, Ρ…Ρ€Π°Π½ΡΡ‰ΡƒΡŽ ΠΈΠΌΠ΅Π½Π° ΠΈ значСния Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ контСкста, связанных с Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ web.xml . Ρ„Π°ΠΉΠ» дСскриптора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появляСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ WEB-INF ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

АксСссоры

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ EL Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹), ΠΎΠ½ΠΈ ΠΏΠΎ нСобходимости Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Java ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.EL ΠΌΠΎΠΆΠ΅Ρ‚ автоматичСски ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΠΌ ΠšΠ»Π°ΡΡΡ‹ Java (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, int ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Integer класс Π·Π° кулисами, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚), Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎ большСй части Π±ΡƒΠ΄ΡƒΡ‚ указатСлями Π½Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Java.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ часто ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойствам этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ, Π² случай массивов ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, ΠΈΡ… элСмСнтов.EL ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… аксСссуары для этой Ρ†Π΅Π»ΠΈ - ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ (. ) ΠΈ скобка ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ( [] ) - позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со свойствами ΠΈ элСмСнтами Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· EL.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ $ {user.firstName} , Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ свойству с ΠΈΠΌΠ΅Π½Π΅ΠΌ firstName ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ .EL ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Java соглашСния ΠΎ beans, поэтому Π³Π΅Ρ‚Ρ‚Π΅Ρ€ для этого свойства (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΈΠΌΠ΅Π½Π΅ΠΌ getFirstName () ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Когда свойство, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ осущСствляСтся доступ, само ΠΏΠΎ сСбС являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‚ΠΎΡ‡ΠΊΠ° ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ рСкурсивно. НапримСр, Ссли наша гипотСтичСская ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свойство адрСс , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Java, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для доступа ΠΊ свойства этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ $ {user.address.city} для НапримСр, Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ свойство city этого адрСса ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ скобок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для извлСчСния элСмСнтов массивов ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ. Π² случаС массивов ΠΈ упорядочСнных ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… java.util.List interface), индСкс элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ появляСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок.НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ $ {urls [3]} Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ элСмСнт массива ΠΈΠ»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ссылаСтся urls ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (индСксы Π² EL ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ нуля, ΠΊΠ°ΠΊ ΠΈ Π² Π―Π·Ρ‹ΠΊ Java ΠΈ JavaScript).

Для ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… интСрфСйс java.util.Map , скобка ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡ‰Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, хранящССся Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ связанный ΠΊΠ»ΡŽΡ‡. ΠšΠ»ΡŽΡ‡ указываСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ скобок, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возвращаСтся ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния.НапримСр, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ $ {commands ["dir"]} Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, связанноС с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ "dir" Π² ΠΊΠ°Ρ€Ρ‚Π΅ Map Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ .

Π’ любом случаС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ вычислСния Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ выраТСния Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ индСксом ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ для ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ массива.Как ΠΈ Π² случаС с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ скобки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ рСкурсивно. Π­Ρ‚ΠΎ позволяСт EL ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ элСмСнты ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивов, Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π»ΡŽΠ±Ρ‹Ρ… сочСтаниС Π΄Π²ΡƒΡ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ скобки ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. НапримСр, Ссли элСмСнты массива сами ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ скобки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для извлСчСния элСмСнта массива ΠΈ объСдинСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· свойств элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $ {urls [3].ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»} ).

Учитывая Ρ€ΠΎΠ»ΡŒ EL ΠΊΠ°ΠΊ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ языка для опрСдСлСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ динамичСских Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ², ΠΎΠ΄Π½Π° интСрСсная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ аксСссоров EL Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языка Java, аксСссоры, ΠΎΠ½ΠΈ Π½Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ null . Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ примСняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа EL (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, foo ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² $ {foo.bar} ΠΈ $ {foo ["bar"]} ) null , Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° доступа Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ null .Π­Ρ‚ΠΎ оказываСтся довольно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°, ΠΊΠ°ΠΊ Π²Ρ‹ вскорС ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅.

НаконСц, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ скобки Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни взаимозамСняСмы. Π—Π° НапримСр, $ {user ["firstName"]} Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния firstName свойство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ , ΠΊΠ°ΠΊ ΠΈ $ {commands.dir} ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для получСния значСния, связанного с "dir" ΠΊΠ»ΡŽΡ‡ Π² ΠΊΠ°Ρ€Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ .

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

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ доступа, EL ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ иСрархиям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². содСрТащиС Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния (прСдставлСнныС Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ областями), Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСдС (Ρ‡Π΅Ρ€Π΅Π· нСявныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ EL). ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² доступ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ прСдставлСния, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ JSP.

Π‘ этой Ρ†Π΅Π»ΡŒΡŽ EL Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ сравнСния Π΄Π°Π½Π½Ρ‹Ρ…. доступ ΠΊ EL выраТСниям.Π­Ρ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.

Π’Π°Π±Π»ΠΈΡ†Π° 2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ EL
ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
АрифмСтичСскиС + , - , * , / (ΠΈΠ»ΠΈ Π΄Π΅Π» ), % (ΠΈΠ»ΠΈ mod )
Relational == (ΠΈΠ»ΠΈ eq ), ! = (ΠΈΠ»ΠΈ ne ), < (ΠΈΠ»ΠΈ lt ), > (ΠΈΠ»ΠΈ gt ), <= (ΠΈΠ»ΠΈ le ), > = (ΠΈΠ»ΠΈ ge )
Logical && (ΠΈΠ»ΠΈ ΠΈ ), || (ΠΈΠ»ΠΈ ΠΈΠ»ΠΈ ), ! (ΠΈΠ»ΠΈ , Π° Π½Π΅ )
ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° пустой

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ слоТСниС, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.Π’Π°ΠΊΠΆΠ΅ прСдоставляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ остатка. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ остатка ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅, Π½Π΅ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° (для согласованности с XPath). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ выраТСния, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ использованиС арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² листингС 5. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния арифмСтичСского ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊ ΠΏΠ°Ρ€Π΅ EL Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ примСнСния этого ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ числовым значСниям этими выраТСниями.

Листинг 5. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ EL. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
 $ {item.price * (1 + taxRate [user.address.zipcode])} 

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ числовыС ΠΈΠ»ΠΈ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сравнСния возвращаСтся ΠΊΠ°ΠΊ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ логичСскиС значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹, возвращая Π½ΠΎΠ²ΠΎΠ΅ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. EL логичСский поэтому ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… рСляционных ΠΈΠ»ΠΈ логичСских ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 6.

Листинг 6. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ EL. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ рСляционный ΠΈ логичСский ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹
 $ {(x> = min) && (x <= max)} 

ПослСдний ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ EL - пустой , Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡƒΡΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ $ {пустой Π²Π²ΠΎΠ΄} ) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π΄Π°Π΅Ρ‚ Π»ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ «пустоС» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.ВыраТСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ null ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ пустыми, ΠΊΠ°ΠΊ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ массивы Π±Π΅Π· элСмСнтов. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ пустой Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Ρ€Π½Π΅Ρ‚ истина , Ссли Π΅Π³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ оцСниваСтся ΠΊΠ°ΠΊ String нуля Π΄Π»ΠΈΠ½Π°.

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² EL ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 3. Как ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π² Π’ листингах 5 ΠΈ 6 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ пСрСопрСдСлСния Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°.

Π’Π°Π±Π»ΠΈΡ†Π° 3. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² EL (свСрху Π²Π½ΠΈΠ·, слСва справа)
[] , .
()
ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ - , Π½Π΅ , ! , Π³. пустой
* , /, div , % , ΠΌΠΎΠ΄
+ , Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ -
() <, > , <= , > = , Π»ΠΈΡ‚ , GT , le , ge
== , ! = , экв , ne
&& , ΠΈ
|| , ΠΈΠ»ΠΈ

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Числа, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки, логичСскиС значСния ΠΈ null s ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Π΅ значСния Π² выраТСниях EL.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ символов Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ЛогичСскиС значСния ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ истинным ΠΈ лоТь .

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Taglib

Как ΠΌΡ‹ обсуТдали Ρ€Π°Π½Π΅Π΅, JSTL 1.0 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ². ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ взаимодСйствиС Ρ‚Π΅Π³ΠΎΠ² JSTL с языком Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΡ‹ рассмотрим нСсколько Ρ‚Π΅Π³ΠΎΠ² ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ядра JSTL . Как ΠΈ Π² случаС с Π»ΡŽΠ±Ρ‹ΠΌ кастомом JSP Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ‚Π΅Π³ΠΎΠ², Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° taglib Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π½Π° Π»ΡŽΠ±ΡƒΡŽ страницу, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° для этой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 7.

Листинг 7. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° taglib для EL-вСрсия ядра JSTL Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
 <% @ taglib uri = "http://java.sun.com/jstl/core" prefix = "c"
                %> 

На самом Π΄Π΅Π»Π΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ taglib , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ JSTL core Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² JSTL 1.0 EL Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. ВсС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ JSTL 1.0 Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π΅Π³ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ вСрсии, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ выраТСния JSP вмСсто EL для указания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ динамичСских Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½Π° Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запроса JSP, ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ RT , Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ языка Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ EL . Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя вСрсиями ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ с использованиСм Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ‚Π΅Π³ΠΎΠ² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° для использования RT-вСрсии основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² Листинг 8. Однако, учитывая нашС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊ EL, это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…. Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹.

Листинг 8. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° taglib для RT-вСрсия ядра JSTL Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
 <% @ taglib uri = "http://java.sun.com/jstl/core_rt"
                prefix = "c_rt"%> 

Π’Π΅Π³ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ настраиваСмый Ρ‚Π΅Π³ JSTL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ рассмотрим, - это дСйствиС .Как ΡƒΠΆΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² JSTL, Π° дСйствиС обСспСчиваСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π° основС Ρ‚Π΅Π³ΠΎΠ² для создания ΠΈ установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом. Бинтаксис этого дСйствия ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² листингС 9. Π³Π΄Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ var ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² области видимости, scope Атрибут ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π² ΠΊΠ°ΠΊΠΎΠΉ области находится пСрСмСнная, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Атрибут ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ привязано ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.Если указанная пСрСмСнная ΡƒΠΆΠ΅ сущСствуСт, Π΅ΠΉ просто Π±ΡƒΠ΄Π΅Ρ‚ присвоСна указанная Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС создаСтся новая пСрСмСнная с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ, которая инициализируСтся этим Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Листинг 9. Бинтаксис для дСйствиС
  

Атрибут scope являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ страницС .

Π”Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° прСдставлСны Π² листингС 10.Π² Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ области сСанса установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ String . Π’ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ - Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для установки числового значСния: пСрСмСнная Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ страницы с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ присваиваСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ умноТСния значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запроса с ΠΈΠΌΠ΅Π½Π΅ΠΌ x .

Листинг 10. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ дСйствиС
   

ВмСсто использования Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для области дСйствия Π² качСствС содСрТимого Ρ‚Π΅Π»Π° дСйствия .Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² листингС 10, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 11. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ сСйчас ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, это ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ для основного содСрТания для использования собствСнных Ρ‚Π΅Π³ΠΎΠ². ВсС содСрТаниС сгСнСрированный Π² Ρ‚Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ указанная пСрСмСнная ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ String .

Листинг 11. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для дСйствия Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Π»ΠΎ content
  CST  

Базовая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JSTL Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Π΅Π³ для управлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости, .Как слСдуСт ΠΈΠ· названия, дСйствиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для удалСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия, ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°. Атрибут var Π½Π°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»Π΅Π½, Π° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ scope ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ слСдуСт ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стр. , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС. 12.

Листинг 12. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствиС
  

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ дСйствиС позволяСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния Π±Ρ‹Ρ‚ΡŒ присвоСнный ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ часто Ρ…ΠΎΡ‡Π΅Ρ‚ просто ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния, Π° Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.Π­Ρ‚ΠΎ Ρ€ΠΎΠ»ΡŒ JSTL настраиваСмый Ρ‚Π΅Π³, синтаксис ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 13. Π­Ρ‚ΠΎΡ‚ Ρ‚Π΅Π³ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ value , Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Если ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ , дСйствиС вмСсто этого Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° оцСниваСтся ΠΊΠ°ΠΊ null ΠΈΠ»ΠΈ пустая строка .

Листинг 13. Бинтаксис для дСйствиС
  

Атрибут escapeXml Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Он ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ символы, ΠΊΠ°ΠΊ Β«<Β», Β«>Β» ΠΈ Β«&Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΠΎΠΈΡ… HTML ΠΈ XML слСдуСт ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ‚Π΅Π³ΠΎΠΌ .Если для escapeXml установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, эти символы Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ XML-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ( <, > ΠΈ ΠΈ соотвСтствСнно для пСрсонаТСй упоминаСтся здСсь).

НапримСр, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ сущСствуСт пСрСмСнная области сСанса с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ , которая являСтся экзСмпляром класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Π΄Π²Π° свойства для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ компания .Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ автоматичСски назначаСтся сСансу всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ обращаСтся ΠΊ сайту, Π½ΠΎ Π΄Π²Π° свойства Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² систСму. Учитывая этот сцСнарий, рассмотритС JSP Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² листингС 14. ПослС Π²Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² систСму этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ слово Β«ΠŸΡ€ΠΈΠ²Π΅Ρ‚Β», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π΅Π΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²ΠΎΡΠΊΠ»ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ. Однако Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΎΠΉΠ΄Π΅Ρ‚ Π² систСму, ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, созданный этим Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ вмСсто этого Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ„Ρ€Π°Π·Π° "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π“ΠΎΡΡ‚ΡŒ!" Π’ этом случаС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ username свойство Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ, Ρ‚Π΅Π³ вмСсто этого распСчатаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ своСго Атрибут ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ символьная строка Β«Π“ΠΎΡΡ‚ΡŒΒ»).

Листинг 14. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ content
 ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ! 

Π—Π°Ρ‚Π΅ΠΌ рассмотрим листинг 15, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π΅Π³ escapeXml Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. Если компания собствСнности находится Π² Π² этом случаС Π±Ρ‹Π»ΠΎ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Java String "Flynn & Sons ", Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, созданный этим дСйствиСм, фактичСски Π±ΡƒΠ΄Π΅Ρ‚ Π€Π»ΠΈΠ½Π½ ΠΈ ΡΡ‹Π½ΠΎΠ²ΡŒΡ .Если это дСйствиС являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ страницы JSP, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ HTML ΠΈΠ»ΠΈ XML, Π·Π°Ρ‚Π΅ΠΌ ампСрсанд Π² сСрСдинС этой строки символов ΠΌΠΎΠΆΠ΅Ρ‚ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ символ HTML ΠΈΠ»ΠΈ XML ΠΈ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ ΠΈΠ»ΠΈ синтаксичСский Π°Π½Π°Π»ΠΈΠ· этого ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ escapeXml вмСсто этого устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true , ΠΎΠ΄Π½Π°ΠΊΠΎ сгСнСрированный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ вмСсто Flynn & Sons .Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ парсСр, ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉΡΡ с этим Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π΅Π³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ. Учитывая, Ρ‡Ρ‚ΠΎ HTML ΠΈ XML Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° Π² JSP-прилоТСниях, это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ удивлСния Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° escapeXml Ρ€Π°Π²Π½ΠΎ ΠΏΡ€Π°Π²Π΄Π° .

Листинг 15. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ дСйствиС с экранированиСм ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½
  

Установка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ значСния

Помимо упрощСния отобраТСния динамичСских Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для указания значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° установка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· . Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² листингС 11, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, присваиваСмоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ содСрТимоС Ρ‚Π΅Π»Π° Ρ‚Π΅Π³Π° ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· свой Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ value.Π’Π»ΠΎΠΆΠΈΠ² дСйствиС Π² содСрТимоС Ρ‚Π΅Π»Π° Ρ‚Π΅Π³Π° , присвоСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² листингС 16. ПовСдСниС внСшнСго Ρ‚Π΅Π³ достаточно прост: ΠΎΠ½ устанавливаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ пСрСмСнная часового пояса области сСанса Π² зависимости ΠΎΡ‚ содСрТимого Ρ‚Π΅Π»Π°. Π’ этом Π² случаС, ΠΎΠ΄Π½Π°ΠΊΠΎ, это содСрТимоС Ρ‚Π΅Π»Π° создаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствиС.Атрибут value этого Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ дСйствия - это Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ $ {cookie ['tzPref']. Value} , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ cookie с ΠΈΠΌΠ΅Π½Π΅ΠΌ tzPref с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСявного Ρ„Π°ΠΉΠ»Π° cookie ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ( cookie нСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сопоставляСт ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ² cookie с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Cookie экзСмпляров, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ‚ΠΎΡ‡ΠΊΠΈ для ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅, хранящиСся Π² cookie, Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ собствСнности.)

Листинг 16. ОбъСдинСниС ΠΈ для прСдоставлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ значСния
 
                  

Однако рассмотрим случай, ΠΊΠΎΠ³Π΄Π° это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅Π΅ этот ΠΊΠΎΠ΄. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π΅Ρ‚ Ρ„Π°ΠΉΠ»Π° cookie с ΠΈΠΌΠ΅Π½Π΅ΠΌ tzPref ΡƒΠΊΠ°Π·Π°Π½ Π² запросС.Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ поиск с использованиСм нСявный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π΅Ρ€Π½Π΅Ρ‚ null , ΠΈ Π² этом случаС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Π¦Π΅Π»ΠΎΠ΅ Π²Π΅Ρ€Π½Π΅Ρ‚ null . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ null , Ρ‚Π΅Π³ вмСсто этого Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ своСго ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚. Π—Π΄Π΅ΡΡŒ это строка символов CST .Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, чистый эффСкт Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ часовой пояс ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости . пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ установлСна ​​в часовой пояс, сохранСнный Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ tzPref cookie ΠΈΠ»ΠΈ, Ссли Π΅Π³ΠΎ Π½Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ часовой пояс ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ CST .

EL ΠΈ JSP 2.0

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ язык Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ доступСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для указания динамичСских значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚Π΅Π³Π°Ρ… JSTL. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ выраТСния JSTL 1.0 язык Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² JSP 2.0 спСцификация, сСйчас ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ. Π­Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ EL со своими собствСнными ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚Π΅Π³Π°ΠΌΠΈ. Авторы страниц смогут ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ EL Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΠΈΠΌ Π² настоящСС врСмя Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ выраТСния JSP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для вставки динамичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² тСкст шаблона:

Π­Ρ‚Π° функция JSP 2.0, ΠΊΠ°ΠΊ ΠΈ сам JSTL, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ страниц ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΡ… Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ элСмСнтов сцСнария JSP, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΎΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ для JSP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘Π²ΠΎΠ΄ΠΊΠ°

EL Π² сочСтании с дСйствиями, прСдоставляСмыми Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ настраиваСмых Ρ‚Π΅Π³ΠΎΠ² JSTL, позволяСт Π°Π²Ρ‚ΠΎΡ€Π°ΠΌ страниц Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ уровня прСдставлСния, Π½Π΅ прибСгая ΠΊ элСмСнты сцСнария. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ΄ JSP Π² листингС 1 Π² Π½Π°Ρ‡Π°Π»Π΅ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ с Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· JSTL, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π² листингС 17. (ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ Π² JSTL core Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ Π΅Π³ΠΎ Π΄Π΅Ρ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ этой сСрии.) Π₯отя это Π΅Ρ‰Π΅ ясно, Ρ‡Ρ‚ΠΎ выполняСтся условная Π»ΠΎΠ³ΠΈΠΊΠ°, вСрсия JSTL Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Java исходный ΠΊΠΎΠ΄ языка Π² Π½Π΅ΠΌ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅Π³Π°ΠΌΠΈ - особСнно Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ гнСздованию - Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ всСм, ΠΊΠΎΠΌΡƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ с синтаксисом HTML.

ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

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

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