תחביר :: מילת מפתח :: Excess

תחביר :: מילת מפתח :: איסוף שיעור פרל
הורד עכשיו

תחביר :: מילת מפתח :: Excess דירוג וסיכום

פרסומת

  • Rating:
  • רישיון:
  • Perl Artistic License
  • מחיר:
  • FREE
  • שם המפרסם:
  • Arthur Axel Schmidt
  • אתר האינטרנט של המוציא לאור:
  • http://search.cpan.org/~frew/

תחביר :: מילת מפתח :: Excess תגים


תחביר :: מילת מפתח :: Excess תיאור

תחביר :: מילות :: אסוף בכיתה Perl Perl 6 מספק מבנה שליטה חדש - לאסוף - המאפשר רשימות שתוקמנה פרוצדוראלית, ללא הצורך משתנה זמני. בתוך הבלוק / הסגירה בשליטה לאסוף כול שיחה לקחת תקופות אינטנסיביות כי רשימת הארגומנטים של קריאת מערך נוצר באופן מרומז. לקחת מחזיר את מספר האלמנטים לקח. תחביר :: מילות :: אסוף היא מודול פרל מיישם כי שליטה structure.At הסוף של ביצוע הבלוק, לאסוף מחזיר את רשימת הערכים המאוחסנים במערך (בהקשר רשימה) או הפניה למערך (ב בהקשר סקלרי) .לדוגמה, במקום לכתוב: הדפסה אל {שלי @wanted; בעוד (קו $ שלי =) {דחיפת @wanted, $ קו אם $ קו = \ / \ D /; לדחוף @wanted, - קו $ אם some_other_condition ($ קו); הדחיפה} @wanted, 'EOF'; להצטרף q {,}, @wanted; }; במקום נוכל לכתוב: הדפסה להצטרף q {,}, {לאסוף תוך (קו $ שלי =) {לקחת קו $ אם $ קו = \ / \ D /; לקחת - $ קו אם some_other_condition (קו $); } לקחת 'EOF'; } ובמקום: לעשות = $ text שלי {$ string שלי; בעוד () {הבא אם / ^ # | ^ $ * s \ /; האחרון אם / ^ __ __ \ n $ /; מחרוזת $ = $ _.; } $ String; }; נוכל לכתוב: = $ text שלי להצטרף q {}, {לאסוף תוך () {הבא אם / ^ # | ^ $ * s \ /; האחרון אם / ^ __ __ \ n $ /; לקחת $ _; }}; יש גם פונקציה שלישית - אסף - אשר מחזירה הפניה למערך מהרומזת נאספת. זה שימושי עבור ברירות המחדל של טיפול: = @odds שלי לאסוף {עבור @data {לקחת $ _ אם $ _% 2; לקחת to_num ($ _) אם / $ /; } לקחת (1,3,5,7,9) אלא אם התאספו; הערה} כי - כמו בדוגמה לעיל משתמע - הפונקציה התאספו מחזירה הפניה מערך מיוחד Perl 5 שפועל כמו הפניה מערך Perl 6 ב בוליאני, מספריים, מחרוזת contexts.It גם של שימושי ליצירת מערך מרומזת על ידי תהליך כלשהו יותר מורכב מאשר רציף פשוט דוחף. לדוגמה, אם היינו צריכים לצרף את מספר הפריטים שאינם מספריים: @odds שלי = לאסוף {עבור @data {לקחת $ _ אם $ _% 2; לקחת to_num ($ _) אם / $ /; } Unshift התאספו, + grep (/ / i, @data); } קונספטואלית לאסוף / לקחת היא הצורה הכללית שממנה הן המפה לגזור grep. כלומר, נוכל ליישם שתי הפונקציות האלה כמו: מפת משנה (@) {שלי $ coderef = משמרת; שלי @list = @ {משמרת @_}; לחזור לאסוף {לקחת $ coderef -> ($ _) עבור (@list)}; grep תת} (@) {coderef $ שלי = משמרת; שלי @list = @ {משמרת @_}; לחזור לאסוף {לקחת $ _ אם $ coderef -> ($ _) עבור @list}; } ת לאסוף גם דרך מאוד שימושית של לקצר את בניית רשימה. לדוגמה, נניח שאנו רוצים ליצור רשימה ממוינת אחת של שורות משני קבצים מסודרים, אבל רק עד השורה הראשונה שיש להם במשותף. אנחנו יכולים לאסוף את הקווים ככה: = @merged_diff שלי לאסוף {שלי $ a = <$ fh_a>; $ שלי ב = <$ fh_b>; תוך (1) {if (המוגדר $ A B $ מוגדר) {if ($ A B EQ $) {האחרון} # שכפל אמצעי בסופו של הרשימה elsif ($ A B $ LT) {לקחת $ a; $ A = <$ fh_a>; } Else {לקחת $ ב; $ B = <$ fh_b>; }} Elsif (מוגדר $ א) {לקחת $; $ A = <$ fh_a>; } Elsif (ב $ מוגדר) {לקחת $ ב; $ B = <$ fh_b>; } Else {האחרון}}} שימוש תקציר תחביר :: מילות :: אסוף; = @List שלי לאסוף {# נסו לחלץ מספרים מוזרים ושמות מספר אי זוגי ... עבור (@data) {if (/ (אחד | שלוש | חמש | שבע | תשע) $ /) {QQ לקחת { '$ _' }} elsif (/ ^ \ d + $ / $ _% 2) {לקחת $ _}} # אבל להשתמש בערכת ברירת המחדל אם אין אף אחד משני ... לקחת @defaults אלא התאספו; } דרישות: · פרל


תחביר :: מילת מפתח :: Excess תוכנה קשורה