{"id":25871,"date":"2026-06-26T03:52:29","date_gmt":"2026-06-26T03:52:29","guid":{"rendered":"https:\/\/umang.pk\/2026\/06\/26\/%da%88%d8%a7%d8%b1%d9%b9-%da%88%d8%a7%d9%b9-%d9%85%d8%ae%d9%81%d9%81%d8%a7%d8%aa-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%a7%db%8c\/"},"modified":"2026-06-26T03:52:29","modified_gmt":"2026-06-26T03:52:29","slug":"%da%88%d8%a7%d8%b1%d9%b9-%da%88%d8%a7%d9%b9-%d9%85%d8%ae%d9%81%d9%81%d8%a7%d8%aa-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%a7%db%8c","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/06\/26\/%da%88%d8%a7%d8%b1%d9%b9-%da%88%d8%a7%d9%b9-%d9%85%d8%ae%d9%81%d9%81%d8%a7%d8%aa-%da%a9%d8%a7-%d8%a7%d8%b3%d8%aa%d8%b9%d9%85%d8%a7%d9%84-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%b1%db%8c%da%ba-%d8%a7%db%8c\/","title":{"rendered":"\u0688\u0627\u0631\u0679 \u0688\u0627\u0679 \u0645\u062e\u0641\u0641\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba: \u0627\u06cc\u06a9 \u0688\u0648\u06cc\u0644\u067e\u0631 \u06a9\u06cc \u06c1\u06cc\u0646\u0688 \u0628\u06a9"},"content":{"rendered":"\n<div id=\"\">\n<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u0645\u0627\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0631\u0635\u06d2 \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0648\u0688 \u0644\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0646\u06d2 \u0634\u0627\u06cc\u062f \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u0637\u0631 \u06a9\u0648 \u0633\u06cc\u0646\u06a9\u0691\u0648\u06ba \u0628\u0627\u0631 \u0644\u06a9\u06be\u0627 \u06c1\u0648\u06af\u0627:<\/p>\n<pre><code class=\"language-dart\">mainAxisAlignment: MainAxisAlignment.center,\ncrossAxisAlignment: CrossAxisAlignment.start,\nmainAxisSize: MainAxisSize.min,\n<\/code><\/pre>\n<p>\u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06c1\u0631 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u0648 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 IDE \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4 \u0688\u0627\u0631\u0679 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u062c\u0628 \u0628\u06be\u06cc \u0622\u067e \u0679\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba \u06af\u06d2\u060c \u0622\u067e \u0688\u0627\u0679 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06a9\u0645\u0644 \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u062f\u06c1\u0631\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 <code>MainAxisAlignment.center<\/code>. <code>CrossAxisAlignment.start<\/code>. <code>MainAxisSize.min<\/code>. \u0622\u067e \u062a\u06cc\u0646 \u0644\u0641\u0638\u0648\u06ba \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0628\u0627\u062a \u06a9\u06c1\u06c1 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0628 \u0627\u0631\u062f\u06af\u0631\u062f \u06a9\u06d2 \u062d\u0627\u0644\u0627\u062a \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0642\u0633\u0645 \u06a9\u0648 \u0628\u0627\u0644\u06a9\u0644 \u0648\u0627\u0636\u062d \u06a9\u0631 \u0686\u06a9\u06d2 \u06c1\u0648\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u0644\u06af \u062a\u06be\u0644\u06af \u0631\u06af\u0691 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0688\u0627\u0631\u0679 \u0627\u0648\u0631 \u0641\u0644\u0679\u0631 \u0645\u06cc\u06ba \u06c1\u0631 \u062c\u06af\u06c1 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0645 \u0644\u06a9\u06be\u0648 <code>Colors.blue<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2: <code>Color<\/code>. \u062a\u0645 \u0644\u06a9\u06be\u0648 <code>BorderRadius.circular(8)<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2: <code>BorderRadius<\/code>. \u062a\u0645 \u0644\u06a9\u06be\u0648 <code>Duration.zero<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u0641\u06cc\u0644\u0688 \u0645\u06cc\u06ba \u062f\u0631\u062c \u06a9\u06cc\u0627 \u06af\u06cc\u0627: <code>Duration<\/code>. \u062a\u0645 \u0644\u06a9\u06be\u0648 <code>TextAlign.center<\/code> \u062f\u0631\u062c \u0630\u06cc\u0644 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2: <code>TextAlign<\/code>.<\/p>\n<p>\u062a\u0645\u0627\u0645 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u0645\u06cc\u06ba \u0642\u0633\u0645 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u06ba \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062f\u0648\u0628\u0627\u0631\u06c1 \u06c1\u062c\u06d2 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0632\u0628\u0627\u0646 \u06a9\u0648 \u0627\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0627\u0631\u0679 3.10\u060c \u062c\u0648 12 \u0646\u0648\u0645\u0628\u0631 2025 \u06a9\u0648 \u0641\u0644\u0679\u0631 3.38 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0631\u06cc\u0644\u06cc\u0632 \u06c1\u0648\u0627\u060c \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0679 \u0645\u062e\u0641\u0641\u0627\u062a \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u06cc\u0627\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679\u0646\u0646\u06af \u0622\u067e \u06a9\u0648 \u0635\u0631\u0641 \u0688\u0627\u0679 \u0627\u0648\u0631 \u0645\u0645\u0628\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u0642\u0633\u0645 \u06a9\u0648 \u062c\u0627\u0646\u062a\u0627 \u06c1\u0648\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>.center<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>MainAxisAlignment.center<\/code>. <code>.circular(8)<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>BorderRadius.circular(8)<\/code>. <code>.zero<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>Duration.zero<\/code>. \u06c1\u062c\u06d2 \u0648\u0627\u0644\u06d2 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u0627\u0628 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06c1\u06cc\u06ba\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u0633 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u06a9\u0627\u0633\u0645\u06cc\u0679\u06a9 \u062e\u0635\u0648\u0635\u06cc\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0646 \u062c\u06af\u06c1\u0648\u06ba \u067e\u0631 \u0628\u0635\u0631\u06cc \u0634\u0648\u0631 \u0645\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u062d\u062f \u062a\u06a9 \u06a9\u0645\u06cc \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0641\u0644\u0679\u0631 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0648\u0688 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba: \u0648\u06cc\u062c\u06cc\u0679 \u0679\u0631\u06cc\u0632\u060c \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633\u060c \u0634\u0645\u0627\u0631\u06cc \u0627\u0633\u0627\u0626\u0646\u0645\u0646\u0679\u0633\u060c \u0627\u0648\u0631 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627\u0644\u0632\u06d4<\/p>\n<p>\u062c\u0628 \u0622\u067e \u0627\u0633\u06d2 \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u0627\u067e\u0646\u06d2 \u0627\u0635\u0644 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u0686\u0627\u0644\u0648 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c <code>Column<\/code> \u0627\u0648\u0631 <code>Row<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0635\u0627\u0641 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u06d2 \u0633\u0648\u0626\u0686 \u0628\u06cc\u0627\u0646\u0627\u062a \u0646\u062b\u0631 \u0633\u06d2 \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0627 \u06a9\u0648\u0688 \u06a9\u06c1\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633 \u06a9\u0627 \u06a9\u06cc\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0628\u063a\u06cc\u0631 \u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u0648\u0632\u0646 \u06a9\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u06a9\u062a\u0627\u0628\u0686\u06c1 \u062a\u0642\u062f\u06cc\u0631 \u06a9\u06cc \u062a\u06a9\u0646\u06cc\u06a9\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0631\u06c1\u0646\u0645\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u06c1 \u0635\u0631\u0641 \u0646\u062d\u0648 \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0628\u0644\u06a9\u06c1 \u0627\u0633 \u06a9\u06d2 \u067e\u06cc\u0686\u06be\u06d2 \u0630\u06c1\u0646\u06cc \u0645\u0627\u0688\u0644 \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u06a9\u0686\u06be \u062c\u06af\u06c1\u0648\u06ba \u067e\u0631 \u0627\u0642\u0633\u0627\u0645 \u06a9\u0627 \u06a9\u06cc\u0648\u06ba \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u0648\u06ba \u067e\u0631 \u0646\u06c1\u06cc\u06ba\u060c \u0642\u06cc\u0627\u0633 \u06a9\u06d2 \u0627\u0635\u0648\u0644 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u06c1\u0627\u06ba \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0648\u0627\u0642\u0639\u06cc \u0637\u0627\u0642\u062a\u0648\u0631 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u062c\u06c1\u0627\u06ba \u06cc\u06c1 \u062e\u0627\u0645\u0648\u0634\u06cc \u0633\u06d2 \u06a9\u0648\u0688 \u06a9\u0648 \u067e\u0691\u06be\u0646\u0627 \u0645\u0634\u06a9\u0644 \u0628\u0646\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0628\u06c1\u062a \u0633\u06d2 \u0641\u0644\u0679\u0631 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0646\u06d2 \u0631\u06cc\u0644\u06cc\u0632 \u0646\u0648\u0679 \u0645\u06cc\u06ba \u0630\u06a9\u0631 \u06a9\u0631\u062f\u06c1 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0627 \u0644\u06cc\u06a9\u0646 \u0627\u0646\u06c1\u06cc\u06ba \u067e\u0648\u0631\u06cc \u0637\u0631\u062d \u0633\u06d2 \u0633\u0645\u062c\u06be \u0646\u06c1\u06cc\u06ba \u0622\u06cc\u0627 \u06a9\u06c1 \u0648\u06c1 \u06a9\u062a\u0646\u06cc \u06af\u06c1\u0631\u06cc \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u06a9\u062a\u0627\u0628\u0686\u06c1 \u0645\u06a9\u0645\u0644 \u062a\u0635\u0648\u06cc\u0631 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u062e\u0631 \u06a9\u0627\u0631\u060c \u0622\u067e \u067e\u0648\u0631\u06d2 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u06a9\u0648 \u0634\u0645\u0627\u0631\u0648\u06ba\u060c \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u0648\u06ba\u060c \u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688\u0632\u060c \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632\u060c \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633\u060c \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686 \u067e\u0691\u062a\u0627\u0644\u060c \u06a9\u0627\u0644\u0639\u062f\u0645 \u0627\u0642\u0633\u0627\u0645\u060c \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0648\u0627\u067e\u0633\u06cc \u0627\u0638\u06c1\u0627\u0631\u0627\u062a \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06d2\u06d4 \u0622\u067e \u06cc\u06c1 \u0628\u06be\u06cc \u062c\u0627\u0646 \u0644\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u06a9\u0646 \u062d\u0627\u0644\u0627\u062a \u0645\u06cc\u06ba \u0641\u06cc\u0686\u0631 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u06cc\u0648\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u06cc\u06c1 \u06af\u0627\u0626\u06cc\u0688 \u0641\u0631\u0636 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06a9\u0686\u06be \u0628\u0646\u06cc\u0627\u062f\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0627\u0648\u0631 \u0645\u06c1\u0627\u0631\u062a\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0634\u0639\u0628\u06d2 \u0645\u06cc\u06ba \u0645\u0627\u06c1\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0622\u067e \u06a9\u0648 \u06c1\u0631 \u0627\u06cc\u06a9 \u0645\u06cc\u06ba \u0639\u0645\u0644\u06cc \u0628\u0646\u06cc\u0627\u062f \u0631\u06a9\u06be\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p><strong>\u0688\u0627\u0631\u0679\u0633 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0628\u0627\u062a\u06cc\u06ba:<\/strong> \u0622\u067e \u06a9\u0648 \u06a9\u0644\u0627\u0633\u0632\u060c \u0634\u0645\u0627\u0631\u06cc\u0627\u062a\u060c \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631\u0627\u0646\u060c \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u0627\u0648\u0631 \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0641\u0631\u0642 \u062c\u0627\u0646\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>ClassName.member<\/code> \u0627\u0648\u0631 <code>instance.member<\/code>\u0627\u0648\u0631 \u0622\u067e \u0633\u0645\u062c\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0627 <code>static<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0645\u06cc\u062f\u0627\u0646 \u06cc\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u062a\u06cc\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0628\u0627\u062a\u06cc\u06ba:<\/strong> \u0622\u067e \u06a9\u0648 \u0627\u0633\u06d2 \u0622\u0631\u0627\u0645 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 <code>Column<\/code>, <code>Row<\/code>, <code>Container<\/code>\u0627\u0648\u0631 \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u06d2 \u0648\u06cc\u062c\u0679\u06d4 \u06af\u0627\u0626\u06cc\u0688 \u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u0648 \u0627\u06cc\u06a9 \u0627\u06c1\u0645 \u062d\u0648\u0635\u0644\u06c1 \u0627\u0641\u0632\u0627 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0627\u062b\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u0688\u0627\u0631\u0679 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0638\u0627\u0645:<\/strong> \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0688\u0627\u0631\u0679 \u0645\u06cc\u06ba \u06c1\u0631 \u0645\u062a\u063a\u06cc\u0631\u060c \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u060c \u0627\u0648\u0631 \u0641\u06cc\u0644\u0688 \u06a9\u06cc \u0627\u06cc\u06a9 \u0642\u0633\u0645 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0633 \u0642\u0633\u0645 \u06a9\u0627 \u06cc\u0627 \u062a\u0648 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u0639\u0644\u0627\u0646 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u06cc\u0627 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u0627 \u06a9\u06c1 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u06a9\u0648\u0688 \u06a9\u06d2 \u0639\u0645\u0644 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2 \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0646\u06cc\u0627\u062f\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>Dart SDK 3.10 \u0627\u0648\u0631 Flutter 3.38 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1:<\/strong> \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u0648\u0631\u0698\u0646 \u0645\u062d\u062f\u0648\u062f \u0641\u06cc\u0686\u0631 \u06c1\u06d2\u06d4 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0688\u0627\u0631\u0679 3.10 \u06a9\u0648 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4 SDK \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>pubspec.yaml<\/code>:<\/p>\n<pre><code class=\"language-yaml\">environment:\n  sdk: ^3.10.0\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0631\u06a9\u0627\u0648\u0679 \u0688\u0627\u0631\u0679 SDK \u06a9\u0648 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u067e\u06cc\u06a9\u06cc\u062c \u0688\u0627\u0631\u0679 3.10 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0644\u06a9\u06be\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0688\u0627\u0631\u0679 \u0641\u0627\u0626\u0644\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679\u0646\u0646\u06af \u0633\u0646\u0679\u06cc\u06a9\u0633 \u06a9\u0648 \u06a9\u06be\u0648\u0644 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u060c \u0627\u06af\u0631 \u0622\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>.center<\/code> \u06cc\u0627 <code>.zero<\/code> \u0645\u062c\u06be\u06d2 \u06cc\u06c1 \u06a9\u06c1\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u062a\u0627\u0644\u06cc\u0641 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u0645\u0644\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06a9\u0679 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0632\u0628\u0627\u0646 \u06a9\u0627 \u0648\u0631\u0698\u0646 3.10 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u0641\u0644\u0679\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba: <code>flutter upgrade<\/code> \u0622\u067e \u06a9\u0648 \u0635\u0631\u0641 SDK \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><strong>\u062a\u062c\u0631\u0628\u0627\u062a\u06cc \u0688\u0627\u0631\u0679 \u067e\u06cc\u0688:<\/strong> \u0622\u067e https:\/\/dartpad.dev \u067e\u0631 \u0627\u0633 \u06af\u0627\u0626\u06cc\u0688 \u0645\u06cc\u06ba \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u0648 \u0627\u0646\u0679\u0631\u0627\u06cc\u06a9\u0679\u0648 \u062c\u0627\u0646\u0686 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 DartPad Dart 3.10 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u06cc\u06c1 \u062c\u0627\u0646\u0686\u0646\u06d2 \u06a9\u0627 \u062a\u06cc\u0632 \u062a\u0631\u06cc\u0646 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u06cc\u0627 \u06a9\u0648\u0626\u06cc \u0645\u062e\u0635\u0648\u0635 \u0645\u062e\u0641\u0641 \u06a9\u0633\u06cc \u0645\u062e\u0635\u0648\u0635 \u0635\u0648\u0631\u062a \u062d\u0627\u0644 \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-what-are-dot-shorthands\">\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06cc\u0627 \u06c1\u06d2\u061f<\/h2>\n<h3 id=\"heading-starting-with-a-direct-analogy\">\u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u062a\u0634\u0628\u06cc\u06c1 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u062a\u0635\u0648\u0631 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u0627\u06cc\u06a9 \u0641\u0627\u0631\u0645 \u067e\u064f\u0631 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u062c\u0633 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0641\u06cc\u0644\u0688 \u06c1\u06d2 \u062c\u0633\u06d2 &quot;\u0645\u0644\u06a9&#8221; \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0645\u06cc\u062f\u0627\u0646 \u06a9\u06d2 \u0628\u0627\u0626\u06cc\u06ba \u062c\u0627\u0646\u0628 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc &#8216;\u0645\u0644\u06a9:&#8217; \u0644\u06a9\u06be\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4 &quot;\u0646\u0627\u0626\u06cc\u062c\u06cc\u0631\u06cc\u0627&#8221; \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u0628\u0627\u06a9\u0633 \u0645\u06cc\u06ba &#8216;\u0645\u0644\u06a9: \u0646\u0627\u0626\u062c\u06cc\u0631\u06cc\u0627&#8217; \u0646\u06c1 \u0644\u06a9\u06be\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0644\u06cc\u0628\u0644 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0633 \u0632\u0645\u0631\u06d2 \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u0642\u06cc\u0645\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0688\u06cc\u0648\u06cc \u0627\u06cc\u0634\u0646 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u06a9\u0627\u0645 \u06c1\u06d2\u06d4 \u062c\u0628 \u0688\u0627\u0631\u0679 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0631\u062f \u06af\u0631\u062f \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0642\u062f\u0631 \u0627\u06cc\u06a9 \u0642\u0633\u0645 \u06a9\u06cc \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <code>MainAxisAlignment<\/code>\u0628\u0633 \u0644\u06a9\u06be\u0648 <code>.center<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 <code>MainAxisAlignment.center<\/code>. \u0642\u0633\u0645 \u06a9\u0627 \u0644\u06cc\u0628\u0644 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u06a9\u0679 \u0622\u067e \u06a9\u0648 \u0635\u0631\u0641 \u0627\u0642\u062f\u0627\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-the-technical-definition\">\u062a\u06a9\u0646\u06cc\u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641<\/h3>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0688\u0627\u0679 \u06c1\u06d2 (<code>.<\/code>) \u06a9\u0648 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u062a\u06a9 \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631 \u06a9\u06cc \u0631\u0633\u0627\u0626\u06cc \u062a\u06a9 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u0631\u062f \u06af\u0631\u062f \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0638\u06c1\u0627\u0631 \u0627\u06cc\u06a9 \u0642\u0633\u0645 \u06a9\u0627 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <code>T<\/code>\u062a\u062d\u0631\u06cc\u0631 <code>.member<\/code> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0639\u0644\u0627\u062c \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>T.member<\/code>. \u062a\u062d\u0631\u06cc\u0631 <code>.new(args)<\/code> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0639\u0644\u0627\u062c \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>T.new(args)<\/code> (\u0628\u06d2 \u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631) \u0644\u06a9\u06be\u06cc\u06ba\u06d4 <code>.namedConstructor(args)<\/code> \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0639\u0644\u0627\u062c \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>T.namedConstructor(args)<\/code>.<\/p>\n<p>\u06a9\u0644\u06cc\u062f\u06cc \u062c\u0645\u0644\u06c1 &quot;\u0648\u0627\u0636\u062d \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645&#8221; \u06c1\u06d2\u06d4 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u0645\u062a\u0648\u0642\u0639 \u0642\u0633\u0645 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0622\u067e \u0627\u0638\u06c1\u0627\u0631 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u0633 \u0633\u06d2 \u0622\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul wp_automatic_readability=\"2\">\n<li wp_automatic_readability=\"-1\">\n<p>\u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u0634\u062f\u06c1 \u0642\u0633\u0645 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u06cc \u062c\u0627 \u0631\u06c1\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u062c\u0633 \u06a9\u06cc \u0642\u062f\u0631 \u067e\u0627\u0633 \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u062c\u0628 \u06a9\u0648\u0626\u06cc \u0642\u062f\u0631 \u0648\u0627\u067e\u0633 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2 \u062a\u0648 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645\u06d4<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u062c\u0627\u0645\u062f \u0642\u0633\u0645 <code>==<\/code> \u06cc\u0627 <code>!=<\/code> \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u06cc\u06ba (\u062e\u0635\u0648\u0635\u06cc \u0642\u0648\u0627\u0639\u062f)<\/p>\n<\/li>\n<li wp_automatic_readability=\"-1\">\n<p>\u0627\u0646\u06cc\u0634\u06cc\u0644\u0627\u0626\u0632\u0631 \u0645\u06cc\u06ba \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0641\u06cc\u0644\u0688 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0646 \u0630\u0631\u0627\u0626\u0639 \u0645\u06cc\u06ba \u0633\u06d2 \u06a9\u0633\u06cc \u0627\u06cc\u06a9 \u0633\u06d2 \u0642\u0633\u0645 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0648\u06c1\u0627\u06ba \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u062f\u0633\u062a\u06cc\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062a\u0648 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u0645\u0631\u062a\u0628 \u0648\u0642\u062a \u06a9\u06cc \u063a\u0644\u0637\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-problem-life-before-dot-shorthands\">\u0645\u0633\u0626\u0644\u06c1: \u062a\u0642\u062f\u06cc\u0631 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u06cc \u0632\u0646\u062f\u06af\u06cc<\/h2>\n<h3 id=\"heading-the-repetition-pattern\">\u062f\u06c1\u0631\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u067e\u06cc\u0679\u0631\u0646<\/h3>\n<p>\u0627\u067e\u0646\u06d2 \u0641\u0644\u0679\u0631 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u06a9\u0648 \u06a9\u06be\u0648\u0644\u06cc\u06ba \u0627\u0648\u0631 \u0627\u06c1\u0645 \u0627\u0633\u06a9\u0631\u06cc\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0648\u06cc\u062c\u06cc\u0679 \u0679\u0631\u06cc \u067e\u0631 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0688\u0627\u0644\u06cc\u06ba\u06d4 \u0622\u067e \u06a9\u0648 \u06a9\u0686\u06be \u0627\u0633 \u0637\u0631\u062d \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627:<\/p>\n<pre><code class=\"language-dart\">Column(\n  mainAxisAlignment: MainAxisAlignment.center,\n  crossAxisAlignment: CrossAxisAlignment.start,\n  mainAxisSize: MainAxisSize.min,\n  children: [\n    Row(\n      mainAxisAlignment: MainAxisAlignment.spaceBetween,\n      crossAxisAlignment: CrossAxisAlignment.center,\n      children: [\n        Text(\n          'Hello',\n          textAlign: TextAlign.left,\n          overflow: TextOverflow.ellipsis,\n        ),\n        Icon(Icons.chevron_right),\n      ],\n    ),\n    SizedBox(height: 16),\n    Container(\n      alignment: Alignment.centerLeft,\n      decoration: BoxDecoration(\n        borderRadius: BorderRadius.circular(8),\n        color: Colors.white,\n      ),\n      child: Text('World'),\n    ),\n  ],\n)\n<\/code><\/pre>\n<p>\u0627\u0633 \u06a9\u0648\u0688 \u0645\u06cc\u06ba\u060c \u0622\u067e \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u06af\u0646\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>MainAxisAlignment<\/code> \u06cc\u06c1 \u062f\u0648 \u0628\u0627\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>CrossAxisAlignment<\/code> \u06cc\u06c1 \u062f\u0648 \u0628\u0627\u0631 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0644\u0641\u0638 <code>MainAxisAlignment<\/code>, <code>CrossAxisAlignment<\/code>, <code>TextAlign<\/code>, <code>TextOverflow<\/code>, <code>Alignment<\/code>, <code>BorderRadius<\/code>, <code>Colors<\/code> \u06cc\u06c1 \u0633\u0628 \u0644\u06a9\u06be\u0627 \u06c1\u0648\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0648\u0631 \u0627\u0646 \u0645\u06cc\u06ba \u0633\u06d2 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0645\u06cc\u06ba \u0642\u0633\u0645 \u06a9\u0627 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 <code>mainAxisAlignment<\/code> \u062e\u0644\u0644 <code>MainAxisAlignment<\/code>, <code>crossAxisAlignment<\/code> \u062e\u0644\u0644 <code>CrossAxisAlignment<\/code>\u0648\u063a\u06cc\u0631\u06c1\u06d4 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u06c1\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u0688\u0627\u0679 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0645\u06a9\u0645\u0644 \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u062f\u0631\u06a9\u0627\u0631 \u062a\u06be\u0627\u06d4<\/p>\n<p>\u06cc\u06c1 \u0635\u0631\u0641 \u0628\u0635\u0631\u06cc \u0634\u0648\u0631 \u0646\u06c1\u06cc\u06ba \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0639\u0644\u0645\u06cc \u0634\u0648\u0631 \u062a\u06be\u0627\u06d4 \u0648\u06cc\u062c\u06cc\u0679 \u0679\u0631\u06cc \u06a9\u0648 \u067e\u0691\u06be\u062a\u06d2 \u0648\u0642\u062a\u060c \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u0627\u0648\u0631 \u0627\u0635\u0644 \u0642\u062f\u0631\u0648\u06ba \u06a9\u06d2 \u062f\u0631\u0645\u06cc\u0627\u0646 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u0622\u0646\u06a9\u06be\u0648\u06ba \u06a9\u0648 \u0633\u0633\u062a \u06a9\u0631 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u062a\u0645\u0627\u0645 \u0645\u062a\u0639\u0644\u0642\u06c1 \u0645\u0639\u0644\u0648\u0645\u0627\u062a &quot;mainAxisAlignment colon center&#8221; \u0645\u06cc\u06ba \u06c1\u06cc\u06ba \u062a\u0648 \u0622\u067e \u06a9\u0627 \u062f\u0645\u0627\u063a &quot;mainAxisAlignment colon MainAxisAlignment \u0688\u0627\u0679 \u0633\u06cc\u0646\u0679\u0631&#8221; \u067e\u0691\u06be\u06d2 \u06af\u0627\u06d4<\/p>\n<h3 id=\"heading-the-switch-statement-problem\">\u0628\u06cc\u0627\u0646 \u06a9\u0627 \u0645\u0633\u0626\u0644\u06c1 \u0633\u0648\u0626\u0686 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u06cc\u0646\u0648\u0645 \u067e\u0631 \u0645\u0628\u0646\u06cc \u0633\u0648\u0626\u0686 \u0628\u06cc\u0627\u0646\u0627\u062a \u0645\u06cc\u06ba \u0628\u06be\u06cc \u06cc\u06c1\u06cc \u0645\u0633\u0626\u0644\u06c1 \u062a\u06be\u0627\u06d4<\/p>\n<pre><code class=\"language-dart\">switch (status) {\n  case NetworkStatus.connecting:\n    return const CircularProgressIndicator();\n  case NetworkStatus.connected:\n    return const Icon(Icons.wifi);\n  case NetworkStatus.disconnected:\n    return const Icon(Icons.wifi_off);\n  case NetworkStatus.error:\n    return const Icon(Icons.error);\n}\n<\/code><\/pre>\n<p>\u0645\u062a\u063a\u06cc\u0631 <code>status<\/code> \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062f\u0631\u062c \u0630\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u062f\u0631\u062c \u06a9\u06cc\u0627 \u062c\u0627 \u0686\u06a9\u0627 \u06c1\u06d2: <code>NetworkStatus<\/code>. \u06c1\u0631 <code>case<\/code> \u062a\u0648 \u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>NetworkStatus<\/code> \u0642\u062f\u0631 \u062a\u062d\u0631\u06cc\u0631 <code>NetworkStatus.connecting<\/code>, <code>NetworkStatus.connected<\/code>, <code>NetworkStatus.disconnected<\/code>\u0627\u0648\u0631 <code>NetworkStatus.error<\/code> \u062a\u0645\u0627\u0645 \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba \u06cc\u06c1 \u062e\u0627\u0644\u0635 \u062a\u06a9\u0631\u0627\u0631 \u06c1\u06d2\u06d4 \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u0633\u0648\u0626\u0686 \u06c1\u062f\u0641 \u067e\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062c\u0627\u0646\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0627\u0633 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0634\u0627\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u067e\u06cc\u0679\u0631\u0646 Dart 3.10 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0646\u0627\u06af\u0632\u06cc\u0631 \u062a\u06be\u0627\u06d4 \u06cc\u06c1 \u0635\u0631\u0641 \u0648\u06c1\u06cc \u0642\u06cc\u0645\u062a \u06c1\u06d2 \u062c\u0648 \u0622\u067e \u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0645\u06cc\u06ba \u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0644\u0641\u0638\u06cc \u067e\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u062f\u0627 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-the-one-rule-that-governs-everything-context\">\u0627\u0646 \u0633\u0628 \u067e\u0631 \u062d\u06a9\u0645\u0631\u0627\u0646\u06cc \u06a9\u0627 \u0627\u06cc\u06a9 \u0627\u0635\u0648\u0644: \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642<\/h2>\n<h3 id=\"heading-the-single-mental-model-you-need\">\u0648\u0627\u062d\u062f \u0630\u06c1\u0646\u06cc \u0645\u0627\u0688\u0644 \u062c\u0633 \u06a9\u06cc \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4<\/h3>\n<p>\u0645\u062e\u0635\u0648\u0635 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0633 \u0648\u0627\u062d\u062f \u0627\u0635\u0648\u0644 \u06a9\u0648 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u0635\u0648\u0644 \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u062a\u0648 \u0632\u0628\u0627\u0646 \u0645\u06cc\u06ba \u0688\u0627\u0679 \u0645\u062e\u062a\u0635\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062a\u0645\u0627\u0645 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0648\u0627\u0636\u062d \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><strong>\u0688\u0627\u0679 \u0645\u062e\u062a\u0635\u0631 \u06a9\u0631\u0646\u0627 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u062a\u0648\u0642\u0639 \u0642\u0633\u0645 \u06a9\u0648 \u062c\u0627\u0646\u062a\u0627 \u06c1\u0648\u06d4<\/strong><\/p>\n<p>\u06cc\u06c1 \u0645\u06a9\u0645\u0644 \u0636\u0627\u0628\u0637\u06c1 \u06c1\u06d2\u06d4 \u0628\u0627\u0642\u06cc \u0633\u0628 \u06a9\u0686\u06be \u0627\u0633\u06cc \u06a9\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0642\u0633\u0645 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4 <code>.member<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>TypeName.member<\/code>. \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u06a9\u0645\u067e\u0627\u0626\u0644 \u0679\u0627\u0626\u0645 \u0627\u06cc\u0631\u0631 \u06c1\u06d2 \u0627\u06af\u0631 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u06a9\u0648 \u0679\u0627\u0626\u067e \u06a9\u0627 \u067e\u062a\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u0627\u0646\u062f\u0627\u0632\u06c1 \u0646\u06c1\u06cc\u06ba\u060c \u06a9\u0648\u0626\u06cc \u0631\u0646 \u0679\u0627\u0626\u0645 \u0627\u0646\u0641\u0631\u0646\u0633\u060c \u06a9\u0648\u0626\u06cc \u0627\u0628\u06c1\u0627\u0645 \u0646\u06c1\u06cc\u06ba\u06d4 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u06a9\u0645\u067e\u0627\u0626\u0644 \u06a9\u06d2 \u0648\u0642\u062a \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0633\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062c\u0648 \u0627\u0633 \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u06cc\u06a9 \u0646\u0638\u0631 \u0688\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u0633 \u06a9\u0627 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ The compiler knows the type from the variable declaration.\n\/\/ NetworkStatus currentStatus = ...\n\/\/ So .connecting is NetworkStatus.connecting. This works.\nNetworkStatus currentStatus = .connecting;\n\n\/\/ The compiler has no type context here.\n\/\/ There is no surrounding variable, parameter, or declaration\n\/\/ to tell it what type .connecting belongs to.\n\/\/ This is a compile-time error.\nvar x = .connecting; \/\/ ERROR: No context type available\n\n\/\/ The compiler knows the type from the parameter declaration.\n\/\/ The parameter `status` is declared as NetworkStatus.\n\/\/ So passing .connected resolves to NetworkStatus.connected. This works.\nvoid update(NetworkStatus status) { }\nupdate(.connected); \/\/ Works: parameter type provides context\n<\/code><\/pre>\n<p><code>NetworkStatus currentStatus = .connecting<\/code>    \u06cc\u06c1 \u0648\u0627\u0636\u062d \u0642\u0633\u0645 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>NetworkStatus<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0627\u0639\u0644\u0627\u0645\u06cc\u06c1 \u0648\u06c1 \u0633\u0628 \u06a9\u0686\u06be \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>var x = .connecting<\/code>    \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>var<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 &quot;\u062f\u0627\u0626\u06cc\u06ba \u0633\u06d2 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u0627\u060c&#8221; \u0627\u0648\u0631 \u062f\u0627\u0626\u06cc\u06ba \u06a9\u0627 \u0622\u063a\u0627\u0632 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0633\u06d2 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u062e\u0648\u062f \u0628\u0627\u0626\u06cc\u06ba \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0631\u06a9\u0644\u0631 \u06c1\u06d2\u06d4 \u06a9\u0648\u0626\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u06a9\u0648\u0626\u06cc \u0645\u062e\u0641\u0641\u0627\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4<\/p>\n<p><code>update(.connected)<\/code>    \u06cc\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>NetworkStatus<\/code> \u06cc\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f \u0628\u0635\u06cc\u0631\u062a \u06c1\u06d2 \u062c\u0648 \u067e\u0648\u0631\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u062f\u0631\u0633\u062a \u0627\u0648\u0631 \u063a\u0644\u0637 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0679\u0631\u06cc\u06a9 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u06cc\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0627\u0633 \u0645\u0642\u0627\u0645 \u067e\u0631 \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-enums-the-primary-use-case\">\u06af\u0646\u062a\u06cc: \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0627\u06c1\u0645 \u0645\u0639\u0627\u0645\u0644\u0627\u062a<\/h2>\n<h3 id=\"heading-why-enums-benefit-most\">\u06a9\u06cc\u0648\u06ba \u0627\u06cc\u0646\u0648\u0645 \u06a9\u0648 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0641\u0627\u0626\u062f\u06c1 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u062f\u0648 \u0648\u062c\u0648\u06c1\u0627\u062a \u06a9\u06cc \u0628\u0646\u0627 \u067e\u0631 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0634\u0645\u0627\u0631\u06cc\u0627\u062a \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u0648\u0631 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u0635\u0648\u0631\u062a \u06c1\u06cc\u06ba:<\/p>\n<p>\u0633\u0628 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u060c \u06cc\u06c1 \u0641\u0644\u0679\u0631 \u0645\u06cc\u06ba \u06c1\u0631 \u062c\u06af\u06c1 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u0645\u06cc\u06ba \u0633\u06cc\u062f\u06be\u060c \u0633\u0627\u0626\u0632\u060c \u0631\u0646\u06af \u0633\u06a9\u06cc\u0645\u06cc\u06ba\u060c \u0679\u06cc\u06a9\u0633\u0679 \u0627\u0648\u0648\u0631 \u0641\u0644\u0648\u060c \u0641\u0648\u0646\u0679 \u06a9\u0627 \u0648\u0632\u0646\u060c \u0628\u0679\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0627\u0632\u060c \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u062f\u0631\u062c\u0646 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0686\u06cc\u0632\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 \u062f\u0648\u0633\u0631\u0627\u060c \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0642\u0633\u0645 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u06c1\u0645\u06cc\u0634\u06c1 \u0648\u0627\u0636\u062d \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633\u06d2 \u06a9\u06cc\u0627 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 \u06cc\u0627 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0633\u06cc\u0679 \u06a9\u06cc\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u060c \u062a\u0627\u06a9\u06c1 \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0627\u0636\u062d \u06c1\u0648\u06ba\u06d4<\/p>\n<h3 id=\"heading-assignments\">\u062a\u0641\u0648\u06cc\u0636<\/h3>\n<pre><code class=\"language-dart\">enum Status { idle, loading, success, error }\n\n\/\/ Before Dart 3.10\nStatus currentStatus = Status.idle;\n\n\/\/ With dot shorthands (Dart 3.10+)\nStatus currentStatus = .idle;\n<\/code><\/pre>\n<p>\u0645\u062a\u063a\u06cc\u0631 \u0627\u0639\u0644\u0627\u0646 <code>Status currentStatus<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u062f\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>.idle<\/code>\u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 (<code>Status<\/code>)\u060c \u0627\u0633 \u06a9\u06cc \u062a\u0635\u062f\u06cc\u0642 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Status<\/code> \u0646\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0631\u06a9\u0646 \u06c1\u06d2\u06d4 <code>idle<\/code>\u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d \u0627\u0633 \u0637\u0631\u062d \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2: <code>Status.idle<\/code>. \u0646\u062a\u06cc\u062c\u06d2 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0645\u0631\u062a\u0628 \u06a9\u0631\u062f\u06c1 \u06a9\u0648\u0688 \u067e\u0686\u06be\u0644\u06d2 \u0648\u0631\u0698\u0646 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u06d2\u06d4 \u0631\u0646 \u0679\u0627\u0626\u0645 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0635\u0631\u0641 \u0646\u062d\u0648 \u06a9\u0627 \u0641\u0631\u0642 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-flutter-widget-parameters\">\u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632<\/h3>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10\nColumn(\n  mainAxisAlignment: MainAxisAlignment.center,\n  crossAxisAlignment: CrossAxisAlignment.start,\n  mainAxisSize: MainAxisSize.min,\n)\n\n\/\/ With dot shorthands (Dart 3.10+)\nColumn(\n  mainAxisAlignment: .center,\n  crossAxisAlignment: .start,\n  mainAxisSize: .min,\n)\n<\/code><\/pre>\n<p>\u06a9\u06c1 <code>Column<\/code> \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u0627 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u067e\u0646\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>mainAxisAlignment<\/code> \u06c1\u06d2 <code>MainAxisAlignment<\/code>, <code>crossAxisAlignment<\/code> \u06c1\u06d2 <code>CrossAxisAlignment<\/code>, <code>mainAxisSize<\/code> \u06c1\u06d2 <code>MainAxisSize<\/code>. \u06c1\u0631 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0688\u06cc\u06a9\u0644\u0631\u06cc\u0634\u0646 \u0645\u0646\u0638\u0648\u0631 \u0634\u062f\u06c1 \u062f\u0644\u0627\u0626\u0644 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2\u06d4 \u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u062f\u06cc\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4 <code>.center<\/code> \u067e\u0631 <code>mainAxisAlignment<\/code> \u0645\u0642\u0627\u0645\u060c \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2\u06d4 <code>MainAxisAlignment<\/code>\u062a\u0648 <code>.center<\/code> \u0628\u0646 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>MainAxisAlignment.center<\/code>. \u06c1\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u0627\u0633 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0622\u0632\u0627\u062f\u0627\u0646\u06c1 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u06cc\u0646 \u0633\u0637\u0631\u06cc \u0648\u0631\u0698\u0646 \u0627\u0648\u0631 \u0646\u06cc\u0627 \u0648\u0631\u0698\u0646 \u0628\u0627\u0644\u06a9\u0644 \u0627\u06cc\u06a9 \u06c1\u06cc \u0628\u0627\u0626\u06cc\u06a9 \u06a9\u0648\u0688 \u067e\u0631 \u0645\u0631\u062a\u0628 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u06a9\u0645\u067e\u0627\u0626\u0644 \u0679\u0627\u0626\u0645 \u06a9\u0646\u0648\u0631\u0698\u0646 \u06c1\u06d2\u060c \u0631\u0646 \u0679\u0627\u0626\u0645 \u06a9\u0646\u0648\u0631\u0698\u0646 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-enhanced-enums\">\u0628\u06c1\u062a\u0631 \u06af\u0646\u062a\u06cc<\/h3>\n<p>\u0688\u0627\u0631\u0679 \u06a9\u06cc \u0628\u06c1\u062a\u0631 \u06af\u0646\u062a\u06cc (\u0688\u0627\u0631\u0679 2.17 \u0645\u06cc\u06ba \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u0626\u06cc \u06af\u0626\u06cc) \u0645\u06cc\u06ba \u0641\u06cc\u0644\u0688\u0632\u060c \u0637\u0631\u06cc\u0642\u06d2 \u0627\u0648\u0631 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0642\u0627\u0628\u0644 \u0631\u0633\u0627\u0626\u06cc \u0627\u0631\u0627\u06a9\u06cc\u0646 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">enum Priority {\n  low(1),\n  medium(5),\n  high(10);\n\n  final int weight;\n  const Priority(this.weight);\n\n  static Priority fromWeight(int w) {\n    if (w <= 3) return low;\n    if (w <= 7) return medium;\n    return high;\n  }\n}\n\n\/\/ Dot shorthand on an enum value\nPriority taskPriority = .high;\n\n\/\/ Dot shorthand on a static factory method defined on the enum\nPriority resolved = .fromWeight(8);\n<\/code><\/pre>\n<p><code>Priority taskPriority = .high<\/code>    \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u0648 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>.high<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Priority.high<\/code>. <code>Priority resolved = .fromWeight(8)<\/code> \u06a9\u0627\u0644 \u062c\u0627\u0645\u062f <code>fromWeight<\/code> \u0637\u0631\u06cc\u0642\u06c1 <code>Priority<\/code> \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u06d2 \u06c1\u062c\u06d2 \u06a9\u06d2 \u0628\u063a\u06cc\u0631\u06d4 \u062f\u0648\u0646\u0648\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-inside-functions-with-enum-return-types\">\u06af\u0646\u062a\u06cc \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0631<\/h3>\n<pre><code class=\"language-dart\">Priority getDefaultPriority() {\n  return .medium; \/\/ return type provides context: Priority\n}\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u0627\u06cc\u06a9 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2\u06d4 <code>return<\/code> \u0627\u06cc\u06a9 \u0628\u06cc\u0627\u0646 \u06a9\u06cc \u0642\u062f\u0631 \u0627\u0633 \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2. <code>.medium<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Priority.medium<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2: <code>Priority<\/code>. \u0627\u0633\u06cc \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0641\u0646\u06a9\u0634\u0646\u060c \u0637\u0631\u06cc\u0642\u06c1\u060c \u06cc\u0627 \u0648\u0627\u0636\u062d \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u067e\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-static-fields-and-constants\">\u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688\u0632 \u0627\u0648\u0631 \u0645\u0633\u062a\u0642\u0644<\/h2>\n<h3 id=\"heading-static-constants\">\u062c\u0627\u0645\u062f \u0645\u0633\u062a\u0642\u0644<\/h3>\n<p>\u062c\u0627\u0645\u062f \u0645\u0633\u062a\u0642\u0644\u060c \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0633\u06cc\u0646\u0679\u06cc\u0646\u0644 \u0627\u0642\u062f\u0627\u0631 \u062c\u06cc\u0633\u06d2 <code>Duration.zero<\/code>, <code>EdgeInsets.zero<\/code>\u0627\u0648\u0631 <code>Offset.zero<\/code>\u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0641\u0644\u0679\u0631 \u0627\u0648\u0631 \u0688\u0627\u0631\u0679 \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0686\u06cc\u0632\u0648\u06ba \u06a9\u0648 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0635\u0627\u0641 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10\nDuration timeout = Duration.zero;\nEdgeInsets padding = EdgeInsets.zero;\nOffset position = Offset.zero;\n\n\/\/ With dot shorthands (Dart 3.10+)\nDuration timeout = .zero;\nEdgeInsets padding = .zero;\nOffset position = .zero;\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba\u060c \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 (<code>Duration<\/code>, <code>EdgeInsets<\/code>, <code>Offset<\/code>) \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06c1\u06d2\u06d4 <code>.zero<\/code> \u0627\u0633\u06d2 \u0645\u0646\u0627\u0633\u0628 \u0642\u0633\u0645 \u06a9\u06d2 \u062c\u0627\u0645\u062f \u0633\u06d2 \u062a\u0639\u0628\u06cc\u0631 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>zero<\/code> \u06cc\u06c1 \u06c1\u0631 \u0645\u0639\u0627\u0645\u0644\u06d2 \u0645\u06cc\u06ba \u0645\u0633\u062a\u0642\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0635\u0641\u0631 \u06a9\u06cc \u0642\u062f\u0631 \u0648\u0627\u0644\u06d2 \u0633\u06cc\u0646\u0679\u06cc\u0646\u0644\u0632 \u0627\u06a9\u062b\u0631 \u0627\u06cc\u0646\u06cc\u0645\u06cc\u0634\u0646 \u06a9\u0648\u0688\u060c \u0644\u06d2 \u0622\u0624\u0679 \u06a9\u0648\u0688\u060c \u0627\u0648\u0631 \u062c\u06cc\u0648\u0645\u06cc\u0679\u0631\u06a9 \u062d\u0633\u0627\u0628\u0627\u062a \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0635\u0644 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0648 \u0628\u0686\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-static-fields-on-built-in-dart-types\">\u0628\u0644\u0679 \u0627\u0646 \u0688\u0627\u0631\u0679 \u0627\u0642\u0633\u0627\u0645 \u0633\u06d2 \u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688\u0632<\/h3>\n<p>\u0688\u0627\u0631\u0679 \u06a9\u06cc \u0628\u0644\u0679 \u0627\u0646 \u0627\u0642\u0633\u0627\u0645 \u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u0628\u06be\u06cc \u0628\u06d2 \u0646\u0642\u0627\u0628 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0627\u062a\u0646\u06cc \u06c1\u06cc \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Duration.zero is a static field on Duration\nDuration animationDuration = .zero;\n\n\/\/ double.infinity is a static field on double\ndouble maxWidth = .infinity;\n\n\/\/ String.isEmpty and similar static constants on types\nint maxRetries = .maxFinite.toInt(); \/\/ double context, then chained\n<\/code><\/pre>\n<p><code>Duration animationDuration = .zero<\/code>    \u062d\u0644 <code>.zero<\/code> \u067e\u0633\u0646\u062f <code>Duration.zero<\/code> \u0645\u062a\u063a\u06cc\u0631 \u0642\u0633\u0645 \u0645\u06cc\u06ba\u06d4 <code>double maxWidth = .infinity<\/code> \u062d\u0644 <code>.infinity<\/code> \u067e\u0633\u0646\u062f <code>double.infinity<\/code>. \u062f\u0648\u0633\u0631\u06cc \u0645\u062b\u0627\u0644 \u0627\u06cc\u06a9 \u06a9\u0646\u06a9\u0634\u0646 \u06a9\u0627 \u0622\u063a\u0627\u0632 \u0628\u06be\u06cc \u062f\u06a9\u06be\u0627\u062a\u06cc \u06c1\u06d2\u060c \u062c\u0648 \u0627\u0633 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-static-methods\">\u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u06c1<\/h2>\n<h3 id=\"heading-calling-static-methods-with-shorthands\">\u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u0627<\/h3>\n<p>\u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688\u0632\u06d4 \u0627\u0633 \u06a9\u06d2 \u0622\u06af\u06d2 \u0627\u06cc\u06a9 \u0688\u0627\u0679 \u06c1\u06d2\u060c \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627 \u0646\u0627\u0645 \u0627\u0648\u0631 \u062f\u0644\u0627\u0626\u0644 \u06c1\u06cc\u06ba\u06d4 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06d2 \u06a9\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0648 \u06a9\u0633 \u06a9\u0644\u0627\u0633 \u0645\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10\nint port = int.parse('8080');\ndouble ratio = double.parse('1.618');\nDateTime now = DateTime.now();\n\n\/\/ With dot shorthands (Dart 3.10+)\nint port = .parse('8080');\ndouble ratio = .parse('1.618');\nDateTime now = .now();\n<\/code><\/pre>\n<p><code>int port = .parse('8080')<\/code>    \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>int.parse('8080')<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06c1\u06d2: <code>int<\/code>\u0627\u0648\u0631 <code>int<\/code> \u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2 \u062c\u0633\u06d2 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>parse<\/code> \u06a9\u06c1 <code>String<\/code> \u0627\u0648\u0631 \u0648\u0627\u067e\u0633 <code>int<\/code>. <code>double ratio = .parse('1.618')<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>double.parse('1.618')<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u06c1\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>DateTime now = .now()<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>DateTime.now()<\/code> \u067e\u0631 <code>DateTime<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642<\/p>\n<p>\u06a9\u0633\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06c1\u0645 \u0622\u06c1\u0646\u06af \u06c1\u0648\u0646\u06cc \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06af\u0631 <code>int.parse<\/code> \u0648\u0627\u067e\u0633\u06cc <code>String<\/code>\u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u0627\u06cc\u06a9 \u0642\u0633\u0645 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u06a9\u06cc \u0627\u0637\u0644\u0627\u0639 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0631\u06cc\u0632\u0648\u0644\u0648\u0634\u0646 \u067e\u06c1\u0644\u06d2 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 (\u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u067e\u0631 \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631\u0648\u06ba \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627) \u0627\u0648\u0631 \u0646\u062a\u06cc\u062c\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u062e\u0644\u0627\u0641 \u0645\u0639\u0645\u0648\u0644 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0679\u0627\u0626\u067e \u0686\u06cc\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-in-function-arguments\">\u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u062f\u0644\u0627\u0626\u0644 \u0645\u06cc\u06ba<\/h3>\n<pre><code class=\"language-dart\">void configure({required Duration timeout, required int retryCount}) {}\n\nconfigure(\n  timeout: .zero,          \/\/ Duration context -> Duration.zero\n  retryCount: .parse('3'), \/\/ int context -> int.parse('3')\n);\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0646\u0627\u0645\u0632\u062f \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06c1\u06d2\u06d4 <code>timeout<\/code> \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>Duration<\/code>\u062a\u0648 <code>.zero<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Duration.zero<\/code>. <code>retryCount<\/code> \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>int<\/code>\u062a\u0648 <code>.parse('3')<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>int.parse('3')<\/code>. \u06c1\u0631 \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u0645\u062e\u062a\u0635\u0631 \u0634\u06a9\u0644 \u0627\u0633 \u06a9\u06d2 \u0627\u067e\u0646\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0622\u0632\u0627\u062f\u0627\u0646\u06c1 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-constructors-and-named-constructors\">\u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u0627\u0648\u0631 \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632<\/h2>\n<h3 id=\"heading-named-constructors\">\u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631<\/h3>\n<p>\u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u0688\u0627\u0631\u0679 \u06a9\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u062d\u0627\u0648\u0631\u0627\u062a\u06cc \u0646\u0645\u0648\u0646\u0648\u06ba \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc\u06ba\u06d4 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06cc\u06ba\u06d4 <code>EdgeInsets<\/code>, <code>BorderRadius<\/code>, <code>Color<\/code>, <code>TextStyle<\/code>, <code>Duration<\/code>\u0627\u0648\u0631 \u062f\u0631\u062c\u0646\u0648\u06ba \u062f\u0648\u0633\u0631\u06cc \u0642\u0633\u0645\u06cc\u06ba \u06c1\u06cc\u06ba \u062c\u0648 \u06c1\u0631 Flutter \u0627\u06cc\u067e \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u062a\u0645\u0627\u0645 \u06a9\u0627\u0645 \u0627\u0633 \u0637\u0631\u062d \u06a9\u0631\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10\nEdgeInsets padding = EdgeInsets.all(16);\nBorderRadius radius = BorderRadius.circular(8);\nColor accent = Color.fromARGB(255, 66, 133, 244);\nTextStyle headline = TextStyle();\n\n\/\/ With dot shorthands (Dart 3.10+)\nEdgeInsets padding = .all(16);\nBorderRadius radius = .circular(8);\nColor accent = .fromARGB(255, 66, 133, 244);\nTextStyle headline = TextStyle(); \/\/ still fine with full form too\n<\/code><\/pre>\n<p><code>EdgeInsets padding = .all(16)<\/code>    \u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>EdgeInsets<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2 \u0627\u0648\u0631 <code>.all(16)<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>EdgeInsets.all(16)<\/code>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06c1\u06d2\u06d4 <code>BorderRadius radius = .circular(8)<\/code> \u06cc\u06c1 \u0627\u0633\u06cc \u0637\u0631\u0632 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0627\u0628 \u0628\u06be\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba \u0627\u06af\u0631 \u06cc\u06c1 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u06c1\u0644\u06cc\u062a \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u06af\u0631 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u0627\u0633\u06d2 \u0648\u0627\u0636\u062d \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062a\u0648 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-in-widget-constructors\">\u0648\u06cc\u062c\u06cc\u0679 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u0645\u06cc\u06ba<\/h3>\n<p>\u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u06d2 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0645\u06cc\u06ba \u0686\u0645\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0641\u0644\u0679\u0631 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10\nPadding(\n  padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),\n  child: Container(\n    decoration: BoxDecoration(\n      borderRadius: BorderRadius.circular(12),\n      border: Border.all(color: Colors.grey, width: 1),\n    ),\n    child: Text('Hello'),\n  ),\n)\n\n\/\/ With dot shorthands (Dart 3.10+)\nPadding(\n  padding: .symmetric(horizontal: 16, vertical: 8),\n  child: Container(\n    decoration: BoxDecoration(\n      borderRadius: .circular(12),\n      border: .all(color: Colors.grey, width: 1),\n    ),\n    child: Text('Hello'),\n  ),\n)\n<\/code><\/pre>\n<p><code>padding: .symmetric(horizontal: 16, vertical: 8)<\/code>    \u062d\u0644 <code>.symmetric(...)<\/code> \u067e\u0633\u0646\u062f <code>EdgeInsets.symmetric(...)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>padding<\/code> \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 <code>Padding<\/code> \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>EdgeInsets<\/code>. <code>borderRadius: .circular(12)<\/code> \u06cc\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>BorderRadius.circular(12)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>borderRadius<\/code> \u0645\u06cc\u062f\u0627\u0646 <code>BoxDecoration<\/code> \u06cc\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>BorderRadius?<\/code>. <code>border: .all(color: Colors.grey, width: 1)<\/code> \u06cc\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2: <code>Border.all(...)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>border<\/code> \u0645\u06cc\u062f\u0627\u0646 <code>BoxDecoration<\/code> \u06cc\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>BoxBorder?<\/code>\u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc <code>Border<\/code> \u0627\u0633\u06d2 \u0646\u0627\u0641\u0630 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0631\u06cc\u0632\u0648\u0644\u06cc\u0648\u0634\u0646 \u0645\u0645\u0628\u0631 \u06a9\u06cc \u062c\u0627\u0645\u062f \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0627\u0633 \u06a9\u06cc \u0635\u062d\u06cc\u062d \u0627\u0639\u0644\u0627\u0646 \u0634\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u06cc \u0628\u06be\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-the-new-shorthand\">.\u0646\u06cc\u0627 \u0645\u062e\u0641\u0641<\/h2>\n<h3 id=\"heading-invoking-the-default-constructor\">\u0688\u06cc\u0641\u0627\u0644\u0679 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0688\u0627\u0631\u0679 <code>ClassName.new<\/code> \u0646\u0627\u0645\u0639\u0644\u0648\u0645 \u0688\u06cc\u0641\u0627\u0644\u0679 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627 \u0627\u06cc\u06a9 \u0646\u0627\u0645\u0632\u062f \u062d\u0648\u0627\u0644\u06c1\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0633\u067e\u0648\u0631\u0679 <code>.new(args)<\/code> \u0688\u06cc\u0641\u0627\u0644\u0679 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688:<\/p>\n<pre><code class=\"language-dart\">class AppConfig {\n  final String baseUrl;\n  final int timeout;\n\n  AppConfig(this.baseUrl, this.timeout);\n}\n\n\/\/ Before Dart 3.10\nAppConfig config = AppConfig('https:\/\/api.example.com', 30);\n\n\/\/ With dot shorthand using .new\nAppConfig config = .new('https:\/\/api.example.com', 30);\n<\/code><\/pre>\n<p><code>.new('https:\/\/api.example.com', 30)<\/code>    \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>AppConfig.new('https:\/\/api.example.com', 30)<\/code>\u06cc\u06c1 \u06a9\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u062c\u06cc\u0633\u0627 \u06c1\u06cc \u06c1\u06d2\u06d4 <code>AppConfig('https:\/\/api.example.com', 30)<\/code>. \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 <code>AppConfig<\/code> \u0642\u0631\u0627\u0631\u062f\u0627\u062f \u0645\u062a\u063a\u06cc\u0631 \u0627\u0639\u0644\u0627\u0645\u06cc\u06c1 \u0645\u06cc\u06ba \u0637\u06d2 \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-when-new-is-most-useful\">\u062c\u0628 .new \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4<\/h3>\n<p>\u06a9\u06c1 <code>.new<\/code> \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0639\u0627\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0627\u0648\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0622\u0626\u0633\u0648\u0644\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u06a9\u0644\u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u062d\u0648\u0627\u0644\u06c1 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<p>\u0688\u0627\u0626\u0631\u06cc\u06a9\u0679 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u0627\u0626\u0646\u0645\u0646\u0679 \u06a9\u0644\u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u0679\u0627\u0626\u067e \u06a9\u0631\u0646\u06d2 \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u0631\u0642\u0645 \u0646\u06c1\u06cc\u06ba \u0628\u0686\u0627\u062a\u06cc\u060c \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06a9\u0644\u0627\u0633 \u06a9\u0627 \u0646\u0627\u0645 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u0679\u0627\u0626\u067e \u062a\u0634\u0631\u06cc\u062d \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 \u062d\u0642\u06cc\u0642\u06cc \u0641\u0648\u0627\u0626\u062f \u062f\u0631\u062c \u0630\u06cc\u0644 \u0646\u0645\u0648\u0646\u06c1 \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba:<\/p>\n<pre><code class=\"language-dart\">\/\/ A list of items where each item is constructed in place\nList<appconfig> configs = [\n  .new('https:\/\/api.example.com', 30),\n  .new('https:\/\/staging.example.com', 60),\n  .new('https:\/\/dev.example.com', 120),\n];\n<\/appconfig><\/code><\/pre>\n<p><code>List<appconfig> configs<\/appconfig><\/code>    \u0622\u067e \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0639\u0646\u0635\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>AppConfig<\/code>. \u06c1\u0631 \u0627\u06cc\u06a9 <code>.new(...)<\/code> \u0644\u0633\u0679 \u0644\u0679\u0631\u06cc\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631\u060c \u06cc\u06c1 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>AppConfig(...)<\/code>. \u0628\u06c1\u062a \u0633\u06cc \u0645\u0644\u062a\u06d2 \u062c\u0644\u062a\u06d2 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627\u0644\u0648\u06ba \u0648\u0627\u0644\u06cc \u0641\u06c1\u0631\u0633\u062a \u0645\u06cc\u06ba\u060c \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u062f\u06c1\u0631\u0627\u0626\u06d2 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0642\u0633\u0645 \u06a9\u06d2 \u0633\u0627\u0628\u0642\u06d2 \u06a9\u0648 \u06c1\u0679\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u062a\u0645\u0627\u0645 \u0627\u0646\u062f\u0631\u0627\u062c\u0627\u062a \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-chaining-after-a-shorthand\">\u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u0646\u06a9\u0634\u0646<\/h2>\n<h3 id=\"heading-chaining-instance-methods\">\u0645\u062b\u0627\u0644 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0646\u06a9\u0634\u0646<\/h3>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0645\u06a9\u0645\u0644 \u0627\u0638\u06c1\u0627\u0631 \u06c1\u0648\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u062c\u0627\u0645\u062f \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0628\u0639\u062f\u060c \u0622\u067e \u0627\u0646\u0633\u0679\u06cc\u0646\u0633 \u0645\u06cc\u062a\u06be\u0688 \u06a9\u0627\u0644\u0632\u060c \u067e\u0631\u0627\u067e\u0631\u0679\u06cc \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0633\u0644\u06cc\u06a9\u0679\u0631\u0632 \u06a9\u0648 \u0686\u06cc\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0632\u0646\u062c\u06cc\u0631 \u0636\u0631\u0648\u0631\u062a \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u0644\u0645\u0628\u0627 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u062d\u062a\u0645\u06cc \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u0637\u0627\u0628\u0642\u062a \u0631\u06a9\u06be\u062a\u06cc \u06c1\u0648\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Chain an instance method after a static method call\nint value = .parse('  42  ').abs();\n\n\/\/ Chain a property access after a constructor call\ndouble distance = .fromARGB(255, 255, 0, 0).opacity;\n\n\/\/ Chain a method after an enum value's instance method\nString statusLabel = .loading.name.toUpperCase();\n<\/code><\/pre>\n<p><code>int value = .parse(' 42 ').abs()<\/code>    \u062d\u0644 <code>.parse(' 42 ')<\/code> \u067e\u0633\u0646\u062f <code>int.parse(' 42 ')<\/code>\u06cc\u06c1 \u06c1\u06d2 <code>int<\/code>. \u067e\u06be\u0631 <code>.abs()<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u06a9\u06c1\u0627 \u062c\u0627\u0626\u06d2 \u06af\u0627 <code>int<\/code> \u0645\u062b\u0627\u0644 \u0646\u062a\u06cc\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2\u06d4 <code>int<\/code>\u06cc\u06c1 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u0633\u06d2 \u0645\u06cc\u0644 \u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062e\u0641\u0641 \u0635\u0631\u0641 \u0628\u0691\u06d2 \u062c\u0627\u0645\u062f \u0631\u0633\u0627\u0626\u06cc \u067e\u0631 \u0644\u0627\u06af\u0648 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0628\u0627\u0642\u06cc \u0633\u0644\u0633\u0644\u06c1 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0645\u0645\u0628\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06c1\u06d2\u06d4 <code>String statusLabel = .loading.name.toUpperCase()<\/code> \u0634\u0645\u0627\u0631 \u06a9\u06cc \u0642\u062f\u0631 \u0633\u06d2 \u062a\u0639\u0644\u0642 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0631\u06cc\u0632\u0648\u0644\u0648\u0634\u0646 \u06a9\u06d2 \u0644\u0626\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0627\u06cc\u06a9 \u06af\u0646\u062a\u06cc \u06c1\u06d2 (\u06cc\u06c1\u0627\u06ba: <code>Status<\/code> \u06cc\u0627 \u0627\u0633\u06cc \u0637\u0631\u062d) <code>.name<\/code> \u062a\u0645\u0627\u0645 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0627\u0642\u062f\u0627\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0628\u0644\u0679 \u0627\u0646 \u067e\u0631\u0627\u067e\u0631\u0679\u06cc \u062c\u0648 \u0642\u062f\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u0644\u0648\u0679\u0627\u062a\u06cc \u06c1\u06d2\u06d4 <code>String<\/code>\u0627\u0648\u0631 <code>.toUpperCase()<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u062b\u0627\u0644\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4 <code>String<\/code>.<\/p>\n<h3 id=\"heading-why-this-matters\">\u06cc\u06c1 \u06a9\u06cc\u0648\u06ba \u0627\u06c1\u0645\u06cc\u062a \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u06a9\u0646\u06a9\u0679\u0646\u06cc\u0634\u0646 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0622\u067e \u06a9\u0648 \u06a9\u0633\u06cc \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631 \u067e\u0631 \u0631\u06a9\u0646\u06d2 \u067e\u0631 \u0645\u062c\u0628\u0648\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0646\u062a\u06cc\u062c\u06c1 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u06d2 \u06cc\u0627 \u0627\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0627\u0633\u06cc \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u0633\u0627 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0642\u0648\u0627\u0639\u062f \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06cc\u06ba: <code>.member<\/code> \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06c1\u06d2\u060c \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0633\u0628 \u06a9\u0686\u06be \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0645\u062b\u0627\u0644 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0627 \u0633\u0644\u0633\u0644\u06c1 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Combining a static constructor call with a property read\nColor primary = .fromARGB(255, 66, 133, 244);\ndouble alpha = .fromARGB(255, 66, 133, 244).opacity; \/\/ context is double\n<\/code><\/pre>\n<p><code>Color primary = .fromARGB(255, 66, 133, 244)<\/code>    \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>Color<\/code> \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642\u06d4 <code>double alpha = .fromARGB(255, 66, 133, 244).opacity<\/code> \u06c1\u06d2 <code>double<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0646\u06c1\u06cc\u06ba\u06d4 <code>Color<\/code>. \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2: <code>.fromARGB<\/code> \u0627\u0633\u06d2 \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u06c1 \u0633\u06d2 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 <code>double<\/code> \u06a9\u06cc\u0627 \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2 \u0627\u0648\u0631 \u06a9\u06cc\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1 \u0645\u062e\u0635\u0648\u0635 \u0645\u062b\u0627\u0644 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u062a\u0631\u062c\u06cc\u062d\u06cc \u0631\u0633\u0627\u0626\u06cc \u06a9\u0648 \u06a9\u0646\u0679\u0631\u0648\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06c1\u0630\u0627 \u062a\u0631\u062c\u06cc\u062d\u06cc \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06cc\u06c1 \u06c1\u06d2: <code>double<\/code>\u0646\u06c1\u06cc\u06ba <code>Color<\/code>. \u06cc\u06c1 \u0627\u06cc\u06a9 \u0644\u0637\u06cc\u0641 \u0646\u06a9\u062a\u06c1 \u06c1\u06d2\u06d4 \u0632\u0646\u062c\u06cc\u0631 \u0628\u0646\u0627\u062a\u06d2 \u0648\u0642\u062a\u060c \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u0626\u06cc\u06ba \u06a9\u06c1 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u067e\u0648\u0632\u06cc\u0634\u0646 \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u062f\u0641 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-equality-operators-the-special-rule\">\u0645\u0633\u0627\u0648\u0627\u062a \u0622\u067e\u0631\u06cc\u0679\u0631: \u062e\u0635\u0648\u0635\u06cc \u0642\u0648\u0627\u0639\u062f<\/h2>\n<h3 id=\"heading-how-and-work-with-dot-shorthands\">== \u0627\u0648\u0631 != \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1<\/h3>\n<p>\u06a9\u06c1 <code>==<\/code> \u0627\u0648\u0631 <code>!=<\/code> \u0622\u067e\u0631\u06cc\u0679\u0631\u0632 \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u0648\u0627\u0626\u0646\u0679 \u0639\u0631\u0641\u06cc \u0646\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0627\u0635 \u0627\u0635\u0648\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u0639\u0627\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0642\u0648\u0627\u0639\u062f \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062c\u0628 \u062f\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u0688\u0627\u0679 \u06a9\u0627 \u0645\u062e\u0641\u0641 \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 <code>==<\/code> \u06cc\u0627 <code>!=<\/code> \u0627\u0638\u06c1\u0627\u0631 \u0645\u06cc\u06ba\u060c \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u06a9\u06cc \u062c\u0627\u0645\u062f \u0642\u0633\u0645 \u0633\u06d2 \u0627\u062e\u0630 \u06a9\u06cc \u06af\u0626\u06cc \u06c1\u06d2\u060c \u0627\u0631\u062f \u06af\u0631\u062f \u06a9\u06d2 \u0645\u062a\u063a\u06cc\u0631 \u06cc\u0627 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0633\u06d2 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-dart\">enum Color { red, green, blue }\n\nColor myColor = Color.red;\n\n\/\/ The LHS is myColor, which has static type Color.\n\/\/ So .green is resolved as Color.green.\nif (myColor == .green) {\n  print('The color is green.');\n}\n\n\/\/ Works the same with !=\nif (myColor != .blue) {\n  print('The color is not blue.');\n}\n<\/code><\/pre>\n<p><code>myColor == .green<\/code>    \u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>myColor<\/code> \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>Color<\/code>\u0628\u0646\u0627\u0646\u0627 <code>Color<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u062f\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 <code>.green<\/code>. \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u0633\u06d2 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>.green<\/code> \u067e\u0633\u0646\u062f <code>Color.green<\/code> \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u06cc\u06c1 \u062e\u0627\u0635 \u0627\u0635\u0648\u0644 \u06a9\u06cc\u0648\u06ba \u0645\u0648\u062c\u0648\u062f \u06c1\u06d2: <code>==<\/code> \u0627\u0638\u06c1\u0627\u0631\u0627\u062a \u0645\u06cc\u06ba \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u0627\u0626\u0646\u0645\u0646\u0679\u0633 \u06a9\u06cc \u0637\u0631\u062d \u0622\u0633 \u067e\u0627\u0633 \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-equality-in-conditional-expressions\">\u0645\u0634\u0631\u0648\u0637 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u0645\u0633\u0627\u0648\u0627\u062a<\/h3>\n<pre><code class=\"language-dart\">Color selectedColor = Color.red;\nbool condition = true;\n\nColor inferredColor = condition ? .red : .blue;\n<\/code><\/pre>\n<p><code>Color inferredColor = condition ? .red : .blue<\/code>    \u062f\u0648\u0646\u0648\u06ba \u062d\u0644 <code>.red<\/code> \u0627\u0648\u0631 <code>.blue<\/code> \u067e\u0633\u0646\u062f <code>Color<\/code> \u0642\u062f\u0631 \u0679\u0631\u0646\u0631\u06cc \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u06a9\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0627\u0633\u0627\u0626\u0646\u0645\u0646\u0679 \u0679\u0627\u0631\u06af\u0679 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06d2 \u0622\u062a\u06cc \u06c1\u06d2\u06d4 <code>Color<\/code>. \u0679\u0631\u0646\u0631\u06cc \u06a9\u06cc \u062f\u0648\u0646\u0648\u06ba \u0634\u0627\u062e\u06cc\u06ba \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0644\u06c1\u0630\u0627 \u062f\u0648\u0646\u0648\u06ba \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u06a9\u0648 \u0635\u062d\u06cc\u062d \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-what-does-not-work\">\u062c\u0648 \u06a9\u0627\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627<\/h3>\n<pre><code class=\"language-dart\">\/\/ ERROR: No context for the shorthand on the right side\n\/\/ because the left side is `var`, which has no known type yet.\nvar isMatch = someValue == .green; \/\/ FAILS if someValue's type is not clear\n\n\/\/ This works if someValue is explicitly typed\nColor someValue = Color.blue;\nbool isMatch = someValue == .green; \/\/ Works: someValue is Color\n<\/code><\/pre>\n<p><code>var isMatch = someValue == .green<\/code>    \u062c\u0628 \u0622\u067e \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>someValue<\/code>\u06c1\u0645 \u0622\u067e \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0644\u06af\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u067e \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0646\u06c1\u06cc\u06ba \u0644\u06af\u0627 \u0633\u06a9\u062a\u06d2\u06d4 \u0642\u0648\u0627\u0639\u062f \u06a9\u0627 \u0627\u0646\u062d\u0635\u0627\u0631 \u0628\u0627\u0626\u06cc\u06ba \u062c\u0627\u0646\u0628 \u062c\u0627\u0645\u062f \u0642\u0633\u0645 \u067e\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0648 \u0645\u0631\u062a\u0628 \u0648\u0642\u062a \u067e\u0631 \u062c\u0627\u0646\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0628\u0627\u0626\u06cc\u06ba \u06c1\u0627\u062a\u06be \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062a\u0648\u060c \u0645\u062e\u0641\u0641 \u06a9\u0627 \u06a9\u0648\u0626\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062c\u0633 \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc \u062c\u0627\u0626\u06d2\u06d4<\/p>\n<h2 id=\"heading-switch-statements-and-pattern-matching\">\u0628\u06cc\u0627\u0646\u0627\u062a \u0627\u0648\u0631 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06d2 \u0645\u0644\u0627\u067e \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<h3 id=\"heading-switch-on-enums\">\u06af\u0646\u062a\u06cc \u0622\u0646 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0639\u062f\u0627\u062f \u0648 \u0634\u0645\u0627\u0631 \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0635\u0644 \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u0627\u06c1\u0644\u06cc\u062a \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0688\u0631\u0627\u0645\u0627\u0626\u06cc \u0628\u06c1\u062a\u0631\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0648\u0626\u0686 \u0679\u0627\u0631\u06af\u0679 \u0679\u0627\u0626\u067e \u06a9\u0648 \u062a\u0645\u0627\u0645 \u06a9\u06cc\u0633 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">enum AppState { loading, loaded, error, empty }\n\nAppState state = .loading;\n\n\/\/ Before Dart 3.10\nswitch (state) {\n  case AppState.loading:\n    return const CircularProgressIndicator();\n  case AppState.loaded:\n    return const ContentWidget();\n  case AppState.error:\n    return const ErrorWidget();\n  case AppState.empty:\n    return const EmptyStateWidget();\n}\n\n\/\/ With dot shorthands (Dart 3.10+)\nswitch (state) {\n  case .loading:\n    return const CircularProgressIndicator();\n  case .loaded:\n    return const ContentWidget();\n  case .error:\n    return const ErrorWidget();\n  case .empty:\n    return const EmptyStateWidget();\n}\n<\/code><\/pre>\n<p><code>state<\/code>    \u0627\u0633 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>AppState<\/code>\u0628\u0646\u0627\u0646\u0627 <code>AppState<\/code> \u0633\u0648\u0626\u0686 \u06a9\u06d2 \u062a\u0645\u0627\u0645 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645\u06d4 \u06c1\u0631 \u0627\u06cc\u06a9 <code>.loading<\/code>, <code>.loaded<\/code>, <code>.error<\/code>\u0627\u0648\u0631 <code>.empty<\/code> \u0642\u0627\u0628\u0644 \u0627\u0637\u0644\u0627\u0642 \u062d\u0644\u06d4 <code>AppState<\/code> \u0642\u062f\u0631 \u0633\u0648\u0626\u0686 \u0645\u06a9\u0645\u0644 \u06c1\u06d2. \u0679\u06cc\u0633\u0679\u0646\u06af \u0627\u0633\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0627\u0628 \u0628\u06be\u06cc \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u062a\u0645\u0627\u0645 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-switch-expressions\">\u0627\u0638\u06c1\u0627\u0631 \u0633\u0648\u0626\u0686 \u06a9\u0631\u06cc\u06ba<\/h3>\n<p>\u0688\u0627\u0631\u0679 \u06a9\u06d2 \u0633\u0648\u0626\u0686 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646\u0632 (\u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u0642\u0633\u0645\u06cc\u06ba \u062c\u0648 \u0642\u062f\u0631 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba) \u0627\u06cc\u06a9 \u06c1\u06cc \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-dart\">Widget content = switch (state) {\n  .loading => const CircularProgressIndicator(),\n  .loaded  => const ContentWidget(),\n  .error   => const ErrorWidget(),\n  .empty   => const EmptyStateWidget(),\n};\n<\/code><\/pre>\n<p><code>switch (state)<\/code>    \u06a9\u06c1\u0627\u06ba <code>state<\/code> \u06c1\u06d2 <code>AppState<\/code> \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 <code>AppState<\/code> \u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u06c1\u0631 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 <code>=><\/code>. \u06c1\u0631 \u0627\u06cc\u06a9 <code>.loading<\/code>, <code>.loaded<\/code>, <code>.error<\/code>\u0627\u0648\u0631 <code>.empty<\/code> \u0642\u0627\u0628\u0644 \u0627\u0637\u0644\u0627\u0642 \u062d\u0644\u06d4 <code>AppState<\/code> \u0642\u062f\u0631 \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u062f\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 <code>=><\/code> \u062a\u06cc\u0631 \u0633\u0648\u0626\u0686 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u0645\u062a\u0627\u062b\u0631 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0627\u06cc\u06a9 <code>=><\/code> \u0634\u0627\u062e \u0627\u06cc\u06a9 \u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0627\u0638\u06c1\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-pattern-matching-in-switch\">\u0633\u0648\u0626\u0686\u0632 \u06a9\u0627 \u067e\u06cc\u0679\u0631\u0646 \u0645\u0644\u0627\u067e<\/h3>\n<pre><code class=\"language-dart\">void handleResult(Result result) {\n  switch (result) {\n    case .success when result.value > 0:\n      print('Positive success: ${result.value}');\n    case .success:\n      print('Non-positive success');\n    case .failure:\n      print('Failed: ${result.error}');\n  }\n}\n<\/code><\/pre>\n<p>\u062a\u062d\u0641\u0638 \u06a9\u06cc \u0634\u0642 (<code>when<\/code>) \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0642\u062f\u0631\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>.success when result.value > 0<\/code> \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0627\u0642\u062f\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0633 \u067e\u06cc\u0679\u0631\u0646\u06d4 <code>Result.success<\/code> \u0627\u0636\u0627\u0641\u06cc \u062a\u062d\u0641\u0638 \u06a9\u06cc \u0634\u0631\u0627\u0626\u0637 \u06c1\u06cc\u06ba\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688\u0632 \u06a9\u0648 \u0645\u0645\u0627\u062b\u0644 \u0645\u0642\u0627\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0627\u0642\u062f\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06af\u0627\u0631\u0688\u0632 \u06a9\u0627 \u0627\u0644\u06af \u0633\u06d2 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-nullable-types\">nullable \u0642\u0633\u0645<\/h2>\n<h3 id=\"heading-accessing-members-of-t-through-t\">\u0645\u0645\u0628\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc <code>T<\/code> \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 <code>T?<\/code><\/h3>\n<p>\u0627\u06af\u0631 \u0645\u062a\u063a\u06cc\u0631 \u06cc\u0627 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u0645\u06cc\u06ba \u06a9\u0627\u0644\u0639\u062f\u0645 \u0642\u0633\u0645 \u06c1\u06d2\u06d4 <code>T?<\/code>\u0622\u067e \u0627\u0628 \u0628\u06be\u06cc \u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u062c\u0627\u0645\u062f \u0627\u0631\u0627\u06a9\u06cc\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u0627\u0679 \u0645\u062e\u0641\u0641\u0627\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>T<\/code>. \u0688\u0627\u0631\u0679 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2:<\/p>\n<pre><code class=\"language-dart\">\/\/ A parameter typed as nullable Status\nvoid updateStatus(Status? newStatus) {\n  \/\/ You can pass a non-null Status value using a shorthand\n}\n\nupdateStatus(.loading); \/\/ passes Status.loading, which is a valid Status?\n<\/code><\/pre>\n<p><code>updateStatus(.loading)<\/code>    \u06cc\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Status?<\/code> \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>Status?<\/code>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0631\u0648\u0644\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2\u060c \u0622\u067e \u062f\u0631\u062c \u0630\u06cc\u0644 \u0645\u0645\u0628\u0631\u0627\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba: <code>Status<\/code> \u06a9\u0648 <code>Status?<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0642\u062f\u0631 <code>.loading<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Status.loading<\/code>\u06cc\u06c1 \u06a9\u0627\u0644\u0639\u062f\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>Status<\/code>\u063a\u06cc\u0631 null \u0627\u0642\u062f\u0627\u0631 \u06c1\u0645\u06cc\u0634\u06c1 nullable \u067e\u0648\u0632\u06cc\u0634\u0646\u0648\u06ba \u0645\u06cc\u06ba \u062f\u0631\u0633\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-nullable-variable-assignments\">nullable \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u06a9\u0648 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u0646\u0627<\/h3>\n<pre><code class=\"language-dart\">Status? maybeStatus = .error; \/\/ Assigns Status.error to a Status? variable\nStatus? nothing = null;       \/\/ Still works; null is valid for Status?\n<\/code><\/pre>\n<p><code>Status? maybeStatus = .error<\/code>    \u062d\u0644 <code>.error<\/code> \u067e\u0633\u0646\u062f <code>Status.error<\/code> (\u0645\u06cc\u06ba <code>Status?<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642)\u060c \u062c\u0648 \u0627\u06cc\u06a9 nullable \u0645\u062a\u063a\u06cc\u0631 \u06a9\u0648 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u06a9\u0633\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0645\u0646\u0633\u0648\u062e\u06cc \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0646\u06c1\u06cc\u06ba \u0631\u0648\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u0635\u0631\u0641 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0645\u062a\u063a\u06cc\u0631 null \u0631\u06a9\u06be \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06c1\u0645\u06cc\u0634\u06c1 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u063a\u06cc\u0631 null \u0642\u062f\u0631 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-what-nullable-context-does-not-grant\">\u06a9\u06cc\u0627 \u0645\u0646\u0633\u0648\u062e \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0639\u0637\u0627 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u0627\u06cc\u06a9 \u06a9\u0627\u0644\u0639\u062f\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0622\u067e \u06a9\u0648 \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0631\u0627\u06a9\u06cc\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>T<\/code>\u0644\u06cc\u06a9\u0646 \u06a9\u0627 \u0631\u06a9\u0646 \u0646\u06c1\u06cc\u06ba\u06d4 <code>Null<\/code>. <code>Null<\/code> \u0627\u0633 \u0645\u0642\u0635\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0648\u0626\u06cc \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631\u0627\u0646 \u06a9\u0627\u0631\u0622\u0645\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0633\u06d2 \u0628\u06d2 \u0646\u0642\u0627\u0628 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ This resolves to Duration.zero (from the Duration? context's underlying Duration type)\nDuration? elapsed = .zero;\n\n\/\/ You cannot access static members of Null through a nullable context\n\/\/ There are no meaningful Null static members to access\n<\/code><\/pre>\n<p><code>Duration? elapsed = .zero<\/code>    \u062d\u0644 <code>.zero<\/code> \u067e\u0633\u0646\u062f <code>Duration.zero<\/code> \u067e\u0631 <code>Duration?<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631 \u06a9\u06cc \u062a\u0644\u0627\u0634 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0644\u0639\u062f\u0645 \u0631\u06cc\u067e\u0631 \u0634\u0641\u0627\u0641 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-futureor-and-async-returns\">FutureOr \u0627\u0648\u0631 Async \u06a9\u0648 \u0648\u0627\u067e\u0633 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<h3 id=\"heading-returning-values-from-async-functions\">\u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06d2 \u0642\u062f\u0631 \u0648\u0627\u067e\u0633 \u06a9\u0631\u0646\u0627<\/h3>\n<p>\u0627\u0646\u062f\u0631\u0648\u0646\u06cc <code>async<\/code> \u0641\u0646\u06a9\u0634\u0646\u060c \u06a9\u0633\u06cc \u0628\u06be\u06cc \u0645\u0648\u062b\u0631 \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 <code>return<\/code> \u0628\u06cc\u0627\u0646 \u06c1\u06d2\u06d4 <code>FutureOr<t\/><\/code> \u06a9\u06c1\u0627\u06ba <code>T<\/code> \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645\u06d4 \u0688\u0627\u0679 \u0645\u062e\u062a\u0635\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u062a\u0635\u0631\u06cc\u062d \u0627\u0633 \u0645\u0639\u0627\u0645\u0644\u06d2 \u06a9\u0648 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u062c\u0627\u0632\u062a \u062f\u06d2 \u06a9\u0631 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u06cc \u06c1\u06d2: <code>T<\/code>\u0622\u067e \u06a9\u06d2 \u062c\u0627\u0645\u062f \u0645\u0645\u0628\u0631\u0627\u0646 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>FutureOr<t\/><\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642:<\/p>\n<pre><code class=\"language-dart\">Future<status> fetchStatus() async {\n  \/\/ The function's declared return type is Future<status>.\n  \/\/ Inside an async function, return accepts a FutureOr<status>.\n  \/\/ Dot shorthand resolves .loaded as Status.loaded.\n  return .loaded;\n}\n<\/status><\/status><\/status><\/code><\/pre>\n<p><code>return .loaded<\/code>    \u0645\u06cc\u06ba <code>Future<status\/><\/code> \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627 \u0648\u0627\u067e\u0633\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06cc\u06c1 \u06c1\u06d2: <code>FutureOr<status\/><\/code>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0642\u0648\u0627\u0639\u062f \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 <code>Status<\/code> \u0645\u0645\u0628\u0631\u0627\u0646 <code>FutureOr<status\/><\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642<\/p>\n<p>\u0688\u0627\u0631\u0679 \u0679\u06cc\u0645 \u0646\u06d2 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u06a9\u06cc\u0633 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u06cc\u0627 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u063a\u06cc\u0631 \u0645\u0637\u0627\u0628\u0642\u062a \u067e\u0630\u06cc\u0631 \u0641\u0646\u06a9\u0634\u0646\u0632 \u0633\u06d2 \u062e\u0627\u0644\u0635 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u0628\u06c1\u062a \u0639\u0627\u0645 \u0627\u0648\u0631 \u0627\u0646\u062a\u06c1\u0627\u0626\u06cc \u0645\u0637\u0627\u0644\u0628\u06c1 \u06c1\u06d2\u06d4 <code>Status.loaded<\/code> \u0627\u06af\u0631 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06c1\u06d2: <code>Status<\/code> \u0627\u0633\u06d2 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0632\u0628\u0627\u0646\u06cc \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u062a\u06be\u0627\u06d4<\/p>\n<h3 id=\"heading-futureor-in-non-async-contexts\">FutureOr \u063a\u06cc\u0631 async \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0645\u06cc\u06ba<\/h3>\n<pre><code class=\"language-dart\">FutureOr<duration> getDelay() {\n  \/\/ Can return either a Duration or a Future<duration>\n  return .zero; \/\/ Resolves to Duration.zero\n}\n<\/duration><\/duration><\/code><\/pre>\n<p><code>return .zero<\/code>    \u0627\u06cc\u06a9 \u0641\u0646\u06a9\u0634\u0646 \u0645\u06cc\u06ba \u062c\u0648 \u0648\u0627\u067e\u0633 \u0622\u062a\u0627 \u06c1\u06d2\u06d4 <code>FutureOr<duration\/><\/code> \u062d\u0644 <code>.zero<\/code> \u067e\u0633\u0646\u062f <code>Duration.zero<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>FutureOr<duration\/><\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0627\u0633 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>Duration<\/code>\u06a9\u0627 \u0645\u0645\u0628\u0631 \u06c1\u06d2 \u0648\u0627\u067e\u0633\u06cc \u06c1\u0648\u0626\u06cc \u0642\u062f\u0631 \u06c1\u0645 \u0648\u0642\u062a \u0633\u0627\u0632 \u06c1\u06d2\u06d4 <code>Duration<\/code>\u06cc\u06c1 \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4 <code>FutureOr<duration\/><\/code>.<\/p>\n<h3 id=\"heading-the-transformation-in-practice\">\u062d\u0642\u06cc\u0642\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc<\/h3>\n<p>\u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u0679\u0631\u06cc \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u0626\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0628\u0627\u0627\u062b\u0631 \u062c\u06af\u06c1 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0641\u0644\u0679\u0631 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u0645\u06cc\u06ba \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u0627\u0648\u0631 \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u06a9\u06cc \u0633\u0628 \u0633\u06d2 \u0628\u0691\u06cc \u062a\u0639\u062f\u0627\u062f \u0634\u0627\u0645\u0644 \u06c1\u06d2\u06d4<\/p>\n<p>\u06cc\u06c1\u0627\u06ba \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u067e\u0631\u0648\u0641\u0627\u0626\u0644 \u06a9\u0627\u0631\u0688 \u0648\u06cc\u062c\u06cc\u0679 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u0628\u0639\u062f \u0645\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Before Dart 3.10: A profile card widget\nclass ProfileCard extends StatelessWidget {\n  final String name;\n  final String role;\n  final bool isOnline;\n\n  const ProfileCard({\n    super.key,\n    required this.name,\n    required this.role,\n    required this.isOnline,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    return Card(\n      elevation: 2,\n      child: Padding(\n        padding: EdgeInsets.all(16),\n        child: Row(\n          mainAxisAlignment: MainAxisAlignment.start,\n          crossAxisAlignment: CrossAxisAlignment.center,\n          children: [\n            CircleAvatar(\n              backgroundColor: isOnline ? Colors.green : Colors.grey,\n              radius: 24,\n              child: Text(\n                name[0].toUpperCase(),\n                style: TextStyle(\n                  color: Colors.white,\n                  fontWeight: FontWeight.bold,\n                ),\n              ),\n            ),\n            SizedBox(width: 12),\n            Expanded(\n              child: Column(\n                mainAxisSize: MainAxisSize.min,\n                crossAxisAlignment: CrossAxisAlignment.start,\n                children: [\n                  Text(\n                    name,\n                    style: TextStyle(\n                      fontWeight: FontWeight.w600,\n                      overflow: TextOverflow.ellipsis,\n                    ),\n                  ),\n                  Text(\n                    role,\n                    style: TextStyle(\n                      color: Colors.grey,\n                      fontSize: 12,\n                    ),\n                  ),\n                ],\n              ),\n            ),\n            Icon(\n              isOnline ? Icons.circle : Icons.circle_outlined,\n              color: isOnline ? Colors.green : Colors.grey,\n              size: 12,\n            ),\n          ],\n        ),\n      ),\n    );\n  }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0635\u0627\u0641\u060c \u0645\u062d\u0627\u0648\u0631\u06c1 \u0641\u0644\u0679\u0631 \u06a9\u0648\u0688 \u06c1\u06d2\u06d4 \u0644\u06cc\u06a9\u0646 \u062f\u06cc\u06a9\u06be\u0648 \u06a9\u06c1 \u06cc\u06c1 \u06a9\u062a\u0646\u06cc \u062a\u06a9\u0631\u0627\u0631 \u06c1\u06d2\u06d4 \u062a\u0645\u0627\u0645 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0627\u0642\u062f\u0627\u0631 \u0627\u0648\u0631 \u062a\u0645\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627\u0644\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06a9\u0645\u0644 \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0627\u0645\u06d4<\/p>\n<p>\u0627\u0628 \u06cc\u06c1\u06cc \u0628\u0627\u062a \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u06be\u06cc \u0633\u0686 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ With dot shorthands (Dart 3.10+)\nclass ProfileCard extends StatelessWidget {\n  final String name;\n  final String role;\n  final bool isOnline;\n\n  const ProfileCard({\n    super.key,\n    required this.name,\n    required this.role,\n    required this.isOnline,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    return Card(\n      elevation: 2,\n      child: Padding(\n        padding: .all(16),\n        child: Row(\n          mainAxisAlignment: .start,\n          crossAxisAlignment: .center,\n          children: [\n            CircleAvatar(\n              backgroundColor: isOnline ? Colors.green : Colors.grey,\n              radius: 24,\n              child: Text(\n                name[0].toUpperCase(),\n                style: TextStyle(\n                  color: Colors.white,\n                  fontWeight: .bold,\n                ),\n              ),\n            ),\n            const SizedBox(width: 12),\n            Expanded(\n              child: Column(\n                mainAxisSize: .min,\n                crossAxisAlignment: .start,\n                children: [\n                  Text(\n                    name,\n                    style: TextStyle(\n                      fontWeight: .w600,\n                      overflow: .ellipsis,\n                    ),\n                  ),\n                  Text(\n                    role,\n                    style: TextStyle(\n                      color: Colors.grey,\n                      fontSize: 12,\n                    ),\n                  ),\n                ],\n              ),\n            ),\n            Icon(\n              isOnline ? Icons.circle : Icons.circle_outlined,\n              color: isOnline ? Colors.green : Colors.grey,\n              size: 12,\n            ),\n          ],\n        ),\n      ),\n    );\n  }\n}\n<\/code><\/pre>\n<p><code>padding: .all(16)<\/code>    \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>EdgeInsets.all(16)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>Padding.padding<\/code> \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 <code>EdgeInsets<\/code>. <code>mainAxisAlignment: .start<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>MainAxisAlignment.start<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>Row.mainAxisAlignment<\/code> \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 <code>MainAxisAlignment<\/code>. <code>crossAxisAlignment: .center<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>CrossAxisAlignment.center<\/code>. <code>fontWeight: .bold<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>FontWeight.bold<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>TextStyle.fontWeight<\/code> \u06c1\u06d2 <code>FontWeight?<\/code>. <code>mainAxisSize: .min<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>MainAxisSize.min<\/code>. <code>overflow: .ellipsis<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>TextOverflow.ellipsis<\/code>.<\/p>\n<p>\u06c1\u0631 \u0645\u062e\u062a\u0635\u0631 \u0641\u0627\u0631\u0645 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u0627\u0633 \u06a9\u06d2 \u0688\u06cc\u06a9\u0644\u0631\u06cc\u0634\u0646 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06d2 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u0628\u0639\u062f \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u06c1\u06cc \u0645\u0631\u062a\u0628 \u0634\u062f\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0641\u0631\u0642 \u062e\u0627\u0644\u0635\u062a\u0627\u064b \u0645\u0627\u062e\u0630 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u0645\u06cc\u06ba \u06c1\u06d2\u06d4 \u0634\u0627\u0631\u0679 \u06a9\u0679 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u0646\u0627\u0645 \u0627\u0648\u0631 \u0627\u0642\u062f\u0627\u0631 \u0645\u0644\u062d\u0642\u06c1 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0622\u0646\u06a9\u06be \u06a9\u0648 \u0628\u0627\u0631 \u0628\u0627\u0631 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u0633\u06d2 \u06af\u0632\u0631\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u06cc\u06a9 \u062c\u06af\u06c1 \u0633\u06d2 \u062f\u0648\u0633\u0631\u06cc \u062c\u06af\u06c1 \u0635\u0627\u0641 \u0637\u0648\u0631 \u067e\u0631 \u062c\u0627\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-advanced-concepts\">\u0627\u0639\u0644\u06cc \u062f\u0631\u062c\u06d2 \u06a9\u06d2 \u062a\u0635\u0648\u0631\u0627\u062a<\/h2>\n<h3 id=\"heading-where-the-inference-does-not-kick-in\">\u0627\u06af\u0631 \u0627\u0646\u062f\u0627\u0632\u06c1 \u0634\u0631\u0648\u0639 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<p>\u0646\u0627\u06a9\u0627\u0645\u06cc \u06a9\u06cc \u06a9\u06c1\u0627\u0646\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627 \u0627\u062a\u0646\u0627 \u06c1\u06cc \u0627\u06c1\u0645 \u06c1\u06d2 \u062c\u062a\u0646\u0627 \u06a9\u06c1 \u06a9\u0627\u0645\u06cc\u0627\u0628\u06cc \u06a9\u06cc \u06a9\u06c1\u0627\u0646\u06cc\u0648\u06ba \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627\u06d4 \u062f\u0631\u062c \u0630\u06cc\u0644 \u062d\u0627\u0644\u0627\u062a \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0648\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ var infers from the RHS, but RHS needs LHS context: circular, fails\nvar status = .loading; \/\/ ERROR\n\n\/\/ The list literal does not know its element type from a leading dot\nvar items = [.loading, .error]; \/\/ ERROR: var provides no context\n\n\/\/ Explicitly typed list works fine\nList<status> items = [.loading, .error]; \/\/ Works\n\n\/\/ Dynamic removes type information entirely\ndynamic value = .loading; \/\/ ERROR: dynamic is not a usable context type\n\n\/\/ Conditional assignment where context is ambiguous\nObject status = condition ? .loading : 'string'; \/\/ ERROR: Object too broad\n<\/status><\/code><\/pre>\n<p><code>var status = .loading<\/code>    \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>var<\/code> \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0646\u062f\u0627\u0632\u06c1 \u062f\u0627\u0626\u06cc\u06ba \u0633\u06d2 \u0644\u06af\u0627\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u062f\u0627\u0626\u06cc\u06ba (\u0645\u062e\u0641\u0641) \u06a9\u0648 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0627\u0626\u06cc\u06ba \u0642\u0633\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0633\u0631\u06a9\u0644\u0631 \u06c1\u06d2\u06d4<\/p>\n<p><code>var items = [.loading, .error]<\/code>    \u06cc\u06c1 \u0627\u0633\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648\u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0639\u0646\u0627\u0635\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u0627\u0633 \u06a9\u06d2 \u0645\u0648\u0627\u062f \u0633\u06d2 \u0622\u062a\u06cc \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0645\u0648\u0627\u062f \u06a9\u0648 \u0639\u0646\u0635\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>List<status> items = [.loading, .error]<\/status><\/code>    \u0648\u0627\u0636\u062d \u0642\u0633\u0645 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d\u0627\u062a \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u0628\u062a\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 <code>Status<\/code> \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0627 \u062c\u0627\u0626\u0632\u06c1 \u0644\u06cc\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u0648 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0644\u06cc\u06a9\u0646 <code>dynamic value = .loading<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>dynamic<\/code> \u06cc\u06c1 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0638\u0627\u0645 \u06a9\u0648 \u0646\u0638\u0631\u0627\u0646\u062f\u0627\u0632 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0645\u0633\u062a\u062d\u06a9\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0645\u0645\u0628\u0631 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-nested-shorthands\">\u0646\u06cc\u0633\u0679\u0688 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688<\/h3>\n<p>\"\u0646\u06cc\u0633\u0679\u0688 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688\" \u062a\u0628 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0622\u067e \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u06cc\u0631\u0648\u0646\u06cc \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06cc \u0631\u06cc\u0632\u0648\u0644\u06cc\u0648\u0634\u0646 \u0627\u067e\u0646\u06cc \u0642\u0633\u0645 \u06a9\u0648 \u0627\u0633 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0645\u06cc\u06ba \u0646\u06c1\u06cc\u06ba \u067e\u06be\u06cc\u0644\u0627\u062a\u06cc \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u06cc\u06c1 \u06af\u06be\u0648\u0646\u0633\u0644\u06c1 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ The outer shorthand resolves from the BoxDecoration context\nBoxDecoration decoration = BoxDecoration(\n  borderRadius: .circular(8), \/\/ Outer shorthand: BorderRadius.circular(8)\n  border: .all(                \/\/ Outer shorthand: Border.all(...)\n    color: Colors.grey,\n    width: 1,\n  ),\n);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u0622\u0632\u0627\u062f\u0627\u0646\u06c1 \u0637\u0648\u0631 \u067e\u0631 \u062d\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>.circular(8)<\/code> \u067e\u0631 <code>BorderRadius?<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 <code>boxDecoration.borderRadius<\/code>\u0627\u0648\u0631 <code>.all(...)<\/code> \u067e\u0631 <code>BoxBorder?<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 <code>boxDecoration.border<\/code>. \u0648\u06c1 \u0627\u0633 \u0645\u0639\u0646\u06cc \u0645\u06cc\u06ba \u0627\u0648\u0648\u0631\u0644\u06cc\u067e \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0648\u06c1 \u0627\u06cc\u06a9 \u062f\u0648\u0633\u0631\u06d2 \u067e\u0631 \u0627\u0646\u062d\u0635\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0648\u0627\u0642\u0639\u06cc \u0646\u06cc\u0633\u0679\u0688 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u0627\u0648\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627\u0644 \u06a9\u06d2 \u062f\u0644\u0627\u0626\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Attempting to use a shorthand inside another shorthand's arguments\nEdgeInsets padding = .fromLTRB(\n  .zero.left,  \/\/ ERROR: .zero has no context here\n  8, 8, 8,\n);\n<\/code><\/pre>\n<p><code>.zero.left<\/code>    \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0646\u0627\u06a9\u0627\u0645 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>.zero<\/code> \u062f\u0644\u06cc\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 <code>.fromLTRB<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u0642\u0627\u0626\u0645 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 DCM \u0644\u0646\u0679\u0631 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>avoid-nested-shorthands<\/code> \u06cc\u06c1 \u0627\u0635\u0648\u0644 \u06c1\u06d2 \u062c\u0648 \u0627\u0646 \u0645\u0642\u062f\u0645\u0627\u062a \u06a9\u0648 \u062c\u06be\u0646\u0688\u0627 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0631\u0645\u06cc\u0645\u0627\u062a \u06a9\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0645\u0642\u0627\u0645\u0627\u062a \u067e\u0631 \u0648\u0627\u0636\u062d \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2 \u062c\u06c1\u0627\u06ba \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u063a\u06cc\u0631 \u0648\u0627\u0636\u062d \u06c1\u0648\u06d4<\/p>\n<pre><code class=\"language-dart\">EdgeInsets padding = .fromLTRB(\n  EdgeInsets.zero.left, \/\/ Explicit: fine\n  8, 8, 8,\n);\n<\/code><\/pre>\n<h3 id=\"heading-dot-shorthands-with-extension-types\">\u062a\u0648\u0633\u06cc\u0639\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688<\/h3>\n<p>\u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u06cc \u0642\u0633\u0645\u06cc\u06ba (Dart 3.3 \u0645\u06cc\u06ba \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u0626\u06cc \u06af\u0626\u06cc \u06c1\u06cc\u06ba) \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u0628\u06be\u06cc \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u06cc \u0642\u0633\u0645 \u0645\u06cc\u06ba \u062c\u0627\u0645\u062f \u0627\u0631\u0627\u06a9\u06cc\u0646 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0627\u0646 \u062a\u06a9 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u06cc \u062c\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06d2 \u062c\u0628 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u06cc \u0642\u0633\u0645 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06c1\u0648\u06d4<\/p>\n<pre><code class=\"language-dart\">extension type Milliseconds(int value) {\n  static Milliseconds get zero => Milliseconds(0);\n  static Milliseconds fromSeconds(int seconds) => Milliseconds(seconds * 1000);\n}\n\nMilliseconds delay = .zero;             \/\/ Milliseconds.zero\nMilliseconds timeout = .fromSeconds(5); \/\/ Milliseconds.fromSeconds(5)\n<\/code><\/pre>\n<p><code>Milliseconds delay = .zero<\/code>    \u062d\u0644 <code>.zero<\/code> \u067e\u0633\u0646\u062f <code>Milliseconds.zero<\/code> \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u0645\u06cc\u06ba\u06d4 <code>Milliseconds timeout = .fromSeconds(5)<\/code> \u062c\u0627\u0645\u062f \u0641\u06cc\u06a9\u0679\u0631\u06cc \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Milliseconds<\/code>.<\/p>\n<p>\u0627\u06af\u0631\u0686\u06c1 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u0627\u0628 \u0628\u06be\u06cc \u0646\u0633\u0628\u062a\u0627\u064b \u0646\u0626\u06cc \u06c1\u06cc\u06ba\u060c \u0688\u0627\u0679 \u0634\u0627\u0631\u0679\u0646\u0646\u06af \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0627\u06cc\u06a9 \u06c1\u06cc \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0641\u0631\u06cc\u0646\u0688\u0644\u06cc \u0633\u0679\u06cc\u0679\u06a9 \u0645\u0645\u0628\u0631 API \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9\u0633\u0679\u06cc\u0646\u0634\u0646 \u06a9\u06cc \u0642\u0633\u0645\u06cc\u06ba \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u0627 \u06a9\u06c1 \u0628\u0644\u0679 \u0627\u0646 \u0627\u0642\u0633\u0627\u0645\u06d4<\/p>\n<h3 id=\"heading-linter-support\">\u0644\u0646\u0679\u0631 \u0633\u067e\u0648\u0631\u0679<\/h3>\n<p>\u0688\u0627\u0631\u0679 \u06a9\u0648\u0688 \u0645\u06cc\u0679\u0631\u06a9\u0633 (DCM) \u0679\u0648\u0644 \u0686\u0627\u0631 \u0644\u0650\u0646\u0679 \u0627\u0635\u0648\u0644 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062e\u0627\u0635 \u0637\u0648\u0631 \u067e\u0631 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0633\u0644\u0633\u0644 \u0627\u067e\u0646\u0627\u0646\u06d2 \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-yaml\"># analysis_options.yaml (using DCM)\ndcm:\n  rules:\n    - prefer-shorthands-with-enums\n    - prefer-shorthands-with-static-fields\n    - prefer-returning-shorthands\n    - prefer-shorthands-with-constructors:\n        entries:\n          - EdgeInsets\n          - BorderRadius\n          - Radius\n          - Border\n          - Duration\n    - avoid-nested-shorthands\n<\/code><\/pre>\n<p><code>prefer-shorthands-with-enums<\/code>    \u062c\u06be\u0646\u0688\u06d2 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0627\u0642\u062f\u0627\u0631 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u062d\u0627\u0635\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0642\u0633\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u0631\u062f \u06a9\u06cc\u0627 \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0627\u0633\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u06d2 \u0627\u0644\u06af \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>prefer-shorthands-with-static-fields<\/code> \u062c\u0627\u0645\u062f \u0641\u06cc\u0644\u0688 \u062a\u06a9 \u0631\u0633\u0627\u0626\u06cc \u06a9\u06d2 \u0644\u0626\u06d2 \u0628\u06be\u06cc \u06cc\u06c1\u06cc \u06c1\u06d2\u06d4 <code>prefer-returning-shorthands<\/code> \u062c\u06be\u0646\u0688\u0627 \u0627\u06cc\u06a9 \u0628\u06cc\u0627\u0646 \u0648\u0627\u067e\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0627\u062c\u0627\u0632\u062a \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 <code>prefer-shorthands-with-constructors<\/code> \u0627\u0648\u0631 <code>entries<\/code> \u0641\u06c1\u0631\u0633\u062a \u0645\u062e\u0635\u0648\u0635 \u06a9\u0644\u0627\u0633\u0648\u06ba \u06a9\u0648 \u062c\u06be\u0646\u0688\u0627 \u062f\u06cc\u062a\u06cc \u06c1\u06d2 \u062c\u0646 \u06a9\u06d2 \u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627\u0644\u0632 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>avoid-nested-shorthands<\/code> \u06cc\u06c1 \u0627\u0648\u067e\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0646\u06cc\u0633\u0679\u0688 \u06a9\u06cc\u0633 \u06a9\u0648 \u0638\u0627\u06c1\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0646 \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0648 \u0628\u062a\u062f\u0631\u06cc\u062c \u0641\u0639\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba: <code>prefer-shorthands-with-enums<\/code>\u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0624\u062b\u0631) \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u06cc\u0633\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062c\u0648\u06cc\u0632 \u06a9\u0631\u062f\u06c1 \u0646\u0642\u0644 \u0645\u06a9\u0627\u0646\u06cc \u06a9\u06cc \u062d\u06a9\u0645\u062a \u0639\u0645\u0644\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-best-practices\">\u0628\u06c1\u062a\u0631\u06cc\u0646 \u0637\u0631\u0632 \u0639\u0645\u0644<\/h2>\n<h3 id=\"heading-start-with-enums-and-switch-statements\">Enum \u0627\u0648\u0631 \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0648 \u0627\u067e\u0646\u0627\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u062f\u0631 \u0627\u0648\u0631 \u0633\u0628 \u0633\u06d2 \u06a9\u0645 \u062e\u0637\u0631\u06d2 \u06a9\u06cc \u062c\u06af\u06c1\u06cc\u06ba \u0634\u0645\u0627\u0631 \u06a9\u06cc \u0627\u0633\u0627\u0626\u0646\u0645\u0646\u0679\u0633 \u0627\u0648\u0631 \u0633\u0648\u0626\u0686 \u06a9\u06cc\u0633 \u067e\u06cc\u0679\u0631\u0646 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062a\u0628 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0642\u0633\u0645 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u062a\u0645\u0627\u0645 \u0642\u0627\u0631\u0626\u06cc\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0627\u0636\u062d \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0627 \u0627\u0633\u062a\u062f\u0644\u0627\u0644 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0642\u0627\u0628\u0644 \u0627\u0639\u062a\u0645\u0627\u062f \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06cc\u06c1 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u067e\u06c1\u0644\u06d2 \u0627\u067e\u0646\u06d2 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u0633\u06d2 \u06c1\u062c\u0631\u062a \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-always-keep-the-full-form-when-type-is-genuinely-unclear\">\u0627\u06af\u0631 \u0642\u0633\u0645 \u0648\u0627\u0642\u0639\u06cc \u0648\u0627\u0636\u062d \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u06c1\u0645\u06cc\u0634\u06c1 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0631\u06a9\u06be\u06cc\u06ba\u06d4<\/h3>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0645\u0642\u0635\u062f \u0634\u0648\u0631 \u06a9\u0648 \u06a9\u0645 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u060c \u0627\u0628\u06c1\u0627\u0645 \u067e\u06cc\u062f\u0627 \u06a9\u0631\u0646\u0627 \u0646\u06c1\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u06a9\u0633\u06cc \u0645\u062e\u0641\u0641 \u06a9\u06cc \u0648\u062c\u06c1 \u0633\u06d2 \u0642\u0627\u0631\u06cc \u062a\u0648\u0642\u0641 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0633\u0648\u0686\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0688\u0627\u0679 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062a\u0648 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0645\u062e\u0635\u0648\u0635 \u0627\u0634\u0627\u0631\u06d2: \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0627\u067e\u0646\u06d2 IDE \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u0627\u0638\u06c1\u0627\u0631 \u067e\u0631 \u0645\u0646\u0688\u0644\u0627\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2 \u06cc\u06c1 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u0627 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-dart\">\/\/ Clear: the parameter name `alignment` tells you the type\nalignment: .centerLeft,\n\n\/\/ Less clear in isolation: what type does .fromARGB belong to?\n\/\/ The full form communicates more clearly here\ncolor: Color.fromARGB(255, 66, 133, 244), \/\/ more readable than .fromARGB\n<\/code><\/pre>\n<p><code>alignment: .centerLeft<\/code>    \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u0646\u0627\u0645 \u0648\u0627\u0636\u062d \u06c1\u06cc\u06ba\u06d4 <code>alignment<\/code> \u0633\u062e\u062a\u06cc \u0633\u06d2 \u0645\u0637\u0644\u0628 <code>Alignment<\/code>. <code>Color.fromARGB(...)<\/code> \u0627\u0633 \u0633\u06d2 \u067e\u0691\u06be\u0646\u0627 \u0622\u0633\u0627\u0646 \u06c1\u06d2: <code>.fromARGB(...)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>fromARGB<\/code> \u0627\u0633 \u06a9\u06cc \u0648\u062c\u06c1 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627 \u0646\u0627\u0645 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u06a9\u0633 \u0642\u0633\u0645 \u0633\u06d2 \u0622\u06cc\u0627 \u06c1\u06d2\u06d4 <code>Color<\/code> \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u0645\u0646\u06d2 \u06c1\u0648\u0646\u06d2 \u0633\u06d2 \u062a\u0645\u0627\u0645 \u0627\u0628\u06c1\u0627\u0645 \u0641\u0648\u0631\u0627\u064b \u062f\u0648\u0631 \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-be-consistent-across-a-file-or-team\">\u0641\u0627\u0626\u0644\u0648\u06ba \u06cc\u0627 \u0679\u06cc\u0645\u0648\u06ba \u0645\u06cc\u06ba \u0645\u0633\u062a\u0642\u0644 \u0645\u0632\u0627\u062c\u06cc \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u06cc\u06ba<\/h3>\n<p>\u0639\u062f\u0645 \u0645\u0637\u0627\u0628\u0642\u062a \u0645\u0633\u062a\u0642\u0644 \u0627\u067e\u0646\u0627\u0646\u06d2 \u06cc\u0627 \u0645\u0633\u062a\u0642\u0644 \u0627\u062c\u062a\u0646\u0627\u0628 \u0633\u06d2 \u0628\u062f\u062a\u0631 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0622\u062f\u06be\u0627 \u0648\u06cc\u062c\u06cc\u0679 \u0679\u0631\u06cc \u0645\u062e\u062a\u0635\u0631 \u0634\u06a9\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u062f\u06be\u0627 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0627 \u06a9\u0648\u0688 \u0645\u062a\u0636\u0627\u062f \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627 \u0627\u0648\u0631 \u0637\u0631\u0632\u06cc\u06ba \u0645\u062e\u0644\u0648\u0637 \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u06af\u06cc\u060c \u062c\u0633 \u0633\u06d2 \u0639\u0644\u0645\u06cc \u0628\u0648\u062c\u06be \u067e\u06cc\u062f\u0627 \u06c1\u0648\u06af\u0627\u06d4<\/p>\n<p>\u0627\u06cc\u0633\u06d2 \u0642\u0648\u0627\u0646\u06cc\u0646 \u06a9\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0622\u067e \u06a9\u06cc \u0679\u06cc\u0645 \u06a9\u06d2 \u0645\u0637\u0627\u0628\u0642 \u06c1\u0648\u06ba\u06d4 \u06af\u0646\u062a\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u062e\u0641\u0641\u0627\u062a \u06a9\u0648 \u0627\u067e\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646 \u0633\u06d2 \u0628\u0686\u06cc\u06ba\u060c \u06cc\u0627 \u0627\u0646\u06c1\u06cc\u06ba \u0628\u0648\u0631\u0688 \u0645\u06cc\u06ba \u0627\u0646 \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u0627\u0626\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06d2 \u0646\u0627\u0645 \u0642\u0633\u0645 \u06a9\u0648 \u063a\u06cc\u0631 \u0648\u0627\u0636\u062d \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-update-your-pubspecyaml-before-using-any-shorthands\">\u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 pubspec.yaml \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u06cc\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0648\u0631\u0698\u0646 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0645\u062d\u062f\u0648\u062f \u06c1\u06d2\u06d4 \u06a9\u0633\u06cc \u0627\u06cc\u0633\u06d2 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u0641\u0627\u0626\u0644\u0648\u06ba \u067e\u0631 \u0634\u0627\u0631\u0679 \u06a9\u0679\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u062c\u0633 \u0646\u06d2 SDK \u06a9\u06cc \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06c1\u06d2 \u0627\u0633 \u06a9\u06d2 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u062a\u0627\u0644\u06cc\u0641 \u06a9\u06cc \u062e\u0631\u0627\u0628\u06cc \u06c1\u0648\u06af\u06cc\u06d4<\/p>\n<p>\u0646\u062d\u0648 \u06a9\u0648 \u0627\u067e\u0646\u0627\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-yaml\">environment:\n  sdk: ^3.10.0\n<\/code><\/pre>\n<p><code>sdk: ^3.10.0<\/code>    \u0645\u0637\u0644\u0628 \"Dart 3.10.0 \u06cc\u0627 \u0628\u0639\u062f \u06a9\u06d2 \u067e\u06cc\u0686 \u06cc\u0627 \u0645\u0639\u0645\u0648\u0644\u06cc \u0648\u0631\u0698\u0646 (\u0644\u06cc\u06a9\u0646 4.0 \u06cc\u0627 \u0628\u0639\u062f \u06a9\u06d2 \u0646\u06c1\u06cc\u06ba)\"\u06d4 \u06cc\u06c1 \u0688\u0627\u0631\u0679 3 \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0631\u06a9\u0627\u0648\u0679 \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06cc \u0679\u06cc\u0645 \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u06c1\u06cc \u0630\u062e\u06cc\u0631\u06c1 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06cc\u06a9\u062c\u0632 \u06c1\u06cc\u06ba\u060c \u06c1\u0631 \u067e\u06cc\u06a9\u062c \u06a9\u0627 <code>pubspec.yaml<\/code> \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u067e\u06cc\u06a9\u06cc\u062c \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0648\u062f \u0627\u067e \u0688\u06cc\u0679 \u0634\u062f\u06c1 \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-when-to-use-dot-shorthands-and-when-not-to\">\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0628 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0628 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<h3 id=\"heading-where-dot-shorthands-are-clearly-the-right-choice\">\u062c\u0628 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06cc\u0642\u06cc\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0635\u062d\u06cc\u062d \u0627\u0646\u062a\u062e\u0627\u0628 \u06c1\u06d2\u06d4<\/h3>\n<p>Flutter \u0648\u06cc\u062c\u06cc\u0679 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632 \u0645\u06cc\u06ba Enum \u0627\u0642\u062f\u0627\u0631 \u0627\u06cc\u06a9 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u0635\u0648\u0631\u062a \u06c1\u06d2\u06d4 <code>mainAxisAlignment: .center<\/code>, <code>crossAxisAlignment: .start<\/code>, <code>mainAxisSize: .min<\/code>, <code>textAlign: .left<\/code> \u06cc\u06c1 \u0633\u0628 \u0648\u0627\u0636\u062d \u06c1\u06d2\u060c \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06af\u06c1\u0631\u06d2 \u0648\u06cc\u062c\u06cc\u0679 \u062f\u0631\u062e\u062a \u0645\u06cc\u06ba \u06a9\u0627\u0641\u06cc \u0627\u0641\u0642\u06cc \u062c\u06af\u06c1 \u0628\u0686\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u06a9\u0648\u0688 \u06a9\u0648 \u0642\u062f\u0631\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0634\u0645\u0627\u0631\u06cc\u0627\u062a \u0645\u06cc\u06ba \u0628\u06cc\u0627\u0646\u0627\u062a \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0631\u0646\u0627 \u062f\u0648\u0633\u0631\u0627 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0645\u0639\u0627\u0645\u0644\u06c1 \u06c1\u06d2\u06d4 \u0679\u0627\u0626\u067e \u0634\u062f\u06c1 \u0627\u06cc\u0646\u0648\u0645 \u0645\u062a\u063a\u06cc\u0631\u0627\u062a \u067e\u0631 \u0633\u0648\u0626\u0686 \u06a9\u06cc \u062a\u0645\u0627\u0645 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0645\u062e\u062a\u0635\u0631 \u0634\u06a9\u0644 \u0627\u062e\u062a\u06cc\u0627\u0631 \u06a9\u0631 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0646\u062a\u06cc\u062c\u06c1 \u0627\u06cc\u06a9 \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679 \u06c1\u06d2 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u06d2 \u062c\u0648\u0691\u0648\u06ba \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0634\u06c1\u0648\u0631 \u0686\u0648\u06a9\u06cc\u062f\u0627\u0631 \u062c\u06cc\u0633\u06d2 <code>.zero<\/code>, <code>.empty<\/code>, <code>.none<\/code> \u0648\u06c1 \u0627\u0642\u0633\u0627\u0645 \u062c\u0646 \u06a9\u06d2 \u0627\u0631\u0627\u06a9\u06cc\u0646 \u06a9\u0648 \u0639\u0627\u0644\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0648\u06c1 \u0628\u06be\u06cc \u0627\u0686\u06be\u06d2 \u0627\u0645\u06cc\u062f\u0648\u0627\u0631 \u06c1\u06cc\u06ba\u06d4 <code>Duration timeout = .zero<\/code> \u0648\u0627\u0636\u062d <code>Duration timeout = Duration.zero<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06c1\u06cc\u06ba \u0627\u0648\u0631 <code>zero<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0639\u0627\u0644\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0633\u0645\u062c\u06be\u0627 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u0627 \u0686\u0648\u06a9\u06cc\u062f\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-where-to-prefer-the-full-form\">\u062c\u06c1\u0627\u06ba \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u06a9\u0648 \u062a\u0631\u062c\u06cc\u062d \u062f\u06cc\u06ba\u06d4<\/h3>\n<p>\u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06cc\u0627 \u0633\u0679\u06cc\u0679\u06a9 \u0645\u06cc\u062a\u06be\u0688 \u06a9\u0627\u0644\u0632 \u062c\u06c1\u0627\u06ba \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627 \u0646\u0627\u0645 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0679\u0627\u0626\u067e \u06a9\u06cc \u0646\u0634\u0627\u0646\u062f\u06c1\u06cc \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0648\u06c1 \u0645\u06a9\u0645\u0644 \u0642\u0633\u0645 \u06a9\u06d2 \u06a9\u06cc\u0633\u0632 \u06c1\u06cc\u06ba\u06d4 <code>.fromARGB(255, 66, 133, 244)<\/code> \u06cc\u06c1 \u062e\u0648\u062f \u0648\u0636\u0627\u062d\u062a\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>Color.fromARGB(255, 66, 133, 244)<\/code>. \u0648\u0627\u0636\u062d \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u062c\u06c1\u0627\u06ba \u0627\u06cc\u06a9 \u0646\u06cc\u0627 \u0688\u0648\u06cc\u0644\u067e\u0631 \u0646\u06c1 \u062c\u0627\u0646\u062a\u0627 \u06c1\u0648 \u06a9\u06c1 \u0648\u06c1 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u0648 \u062f\u06cc\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645\u06cc\u0679 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0642\u0627\u0628\u0644 \u06c1\u06d2\u06d4 \u062c\u0628 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u0627 \u0646\u0627\u0645 \u0628\u06cc\u0627\u0646 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>config<\/code> \u0642\u0633\u0645 \u0635\u0627\u0631\u0641 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u0634\u062f\u06c1 \u06a9\u0644\u0627\u0633 \u06c1\u06d2\u06d4 <code>ServerConfig<\/code>\u062a\u062d\u0631\u06cc\u0631 <code>.defaults()<\/code> \u0633\u06d2 \u06a9\u0645 \u0648\u0627\u0636\u062d <code>ServerConfig.defaults()<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>config<\/code> \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u0628\u06c1\u0645 \u0646\u0627\u0645 \u06c1\u06d2 \u0627\u0648\u0631 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633 \u06a9\u0644\u0627\u0633 \u06a9\u0648 \u0686\u06be\u067e\u0627\u062a\u0627 \u06c1\u06d2 \u062c\u0633\u06d2 \u0641\u0648\u0631\u06cc \u06a9\u06cc\u0627 \u062c\u0627 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u062f\u0648 \u0645\u062e\u062a\u0644\u0641 \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0627\u06cc\u06a9 \u06c1\u06cc \u0646\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0627\u0645\u062f \u0627\u0631\u06a9\u0627\u0646 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062f\u0648\u0646\u0648\u06ba \u06a9\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u0648\u0646\u06d2 \u06a9\u0627 \u0627\u0645\u06a9\u0627\u0646 \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u06a9\u0648 \u0627\u0644\u062c\u06be\u0646 \u06a9\u0648 \u062e\u062a\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06a9\u0645\u0644 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0627\u06af\u0631 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u063a\u06cc\u0631 \u0645\u0628\u06c1\u0645 \u06c1\u06d2\u060c \u0627\u0646\u0633\u0627\u0646\u06cc \u0642\u0627\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-common-mistakes\">\u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0627\u06ba<\/h2>\n<h3 id=\"heading-using-var-instead-of-an-explicit-type\">\u0648\u0627\u0636\u062d \u0642\u0633\u0645 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 var \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0688\u06cc\u0648\u06cc \u0627\u06cc\u0634\u0646 \u0645\u06cc\u06ba \u0633\u0628 \u0633\u06d2 \u0639\u0627\u0645 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u063a\u0644\u0637\u06cc \u0688\u06cc\u0648\u06cc \u0627\u06cc\u0634\u0646 \u0633\u0679\u06cc\u0646\u0648\u06af\u0631\u0627\u0641\u06cc \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4 <code>var<\/code>:<\/p>\n<pre><code class=\"language-dart\">\/\/ ERROR: var cannot provide a context type\nvar status = .loading;\n\n\/\/ CORRECT: explicit type annotation provides the context\nStatus status = .loading;\n<\/code><\/pre>\n<p><code>var status = .loading<\/code>    \u0627\u06cc\u0633\u0627 \u0644\u06af\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u06d4 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>var<\/code> \u0628\u0627\u0644\u0622\u062e\u0631\u060c \u06cc\u06c1 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u062e\u0630 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2. <code>Status<\/code> \u0627\u06af\u0631 \u0622\u067e \u062a\u0641\u0648\u06cc\u0636 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Status<\/code> \u0642\u062f\u0631 \u0644\u06cc\u06a9\u0646 inference \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u0627\u0626\u067e \u06a9\u0631\u06cc\u06ba\u06d4 <code>var<\/code> \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u062f\u0627\u0626\u06cc\u06ba \u062f\u06cc\u06a9\u06be \u06a9\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0622\u067e \u06a9\u0648 \u062f\u0627\u0626\u06cc\u06ba (\u0645\u062e\u0641\u0641) \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0627\u0626\u06cc\u06ba \u0642\u0633\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p><code>var<\/code>    \u062a\u0634\u062e\u06cc\u0635 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u06a9\u0648\u0626\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4 \u062a\u0634\u062e\u06cc\u0635 \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u062d\u0644 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u06c1\u0645\u06cc\u0634\u06c1 \u0648\u0627\u0636\u062d \u0642\u0633\u0645 \u06a9\u06cc \u062a\u0634\u0631\u06cc\u062d\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0644\u0641\u0638 \u0645\u06cc\u06ba \u0628\u062f\u0644 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u062c\u0633 \u06a9\u06d2 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u06a9\u0644\u06cc\u0646\u0631 \u06a9\u0648\u0688 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-forgetting-to-update-the-sdk-constraint\">\u0627\u06af\u0631 \u0622\u067e SDK \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0628\u06be\u0648\u0644 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-yaml\"># BEFORE: Will not support dot shorthands\nenvironment:\n  sdk: ^3.9.0\n\n# AFTER: Enables dot shorthands for all files in this package\nenvironment:\n  sdk: ^3.10.0\n<\/code><\/pre>\n<p>\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>.loading<\/code> \u06cc\u0627 \u067e\u0686\u06be\u0644\u06d2 \u0631\u06a9\u0627\u0648\u0679 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0633\u06cc \u067e\u0631\u0648\u062c\u06cc\u06a9\u0679 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u062f\u0648\u0633\u0631\u0627 \u0645\u062e\u0641\u0641 \u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0648\u0631\u0698\u0646 \u06a9\u06cc \u0637\u0631\u0641 \u0627\u0634\u0627\u0631\u06c1 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u062a\u0627\u0644\u06cc\u0641 \u06a9\u06cc \u063a\u0644\u0637\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0631\u06d2 \u06af\u0627\u06d4 \u062d\u0644 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u06c1\u06d2: <code>sdk<\/code> \u0641\u0627\u0631\u0645\u0627\u0633\u06cc\u0648\u0679\u06cc\u06a9\u0644 <code>pubspec.yaml<\/code>\u067e\u06be\u0631 \u0628\u06be\u0627\u06af\u0648 <code>flutter pub get<\/code> \u06cc\u0627 <code>dart pub get<\/code>. \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u06a9\u0648\u0688 \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 <code>pubspec.yaml<\/code> \u0641\u06cc\u0686\u0631 \u06a9\u0648 \u0686\u0627\u0644\u0648 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0628\u0631\u0627\u06c1 \u06a9\u0631\u0645 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-assuming-shorthands-work-inside-generic-type-arguments\">\u0641\u0631\u0636 \u06a9\u0631\u0646\u0627 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0639\u0627\u0645 \u0642\u0633\u0645 \u06a9\u06d2 \u062f\u0644\u0627\u0626\u0644 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/h3>\n<pre><code class=\"language-dart\">\/\/ ERROR: Type arguments do not provide a shorthand context\nList<.center> items; \/\/ Meaningless and invalid\nMap<string .loading=\"\"> cache; \/\/ Invalid\n<\/string><\/code><\/pre>\n<p>\u0642\u0633\u0645 \u062f\u0644\u06cc\u0644 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 ( <code><t\/><\/code> (\u0628\u0627\u0642\u0627\u0639\u062f\u06c1 \u0627\u0642\u0633\u0627\u0645 \u0645\u06cc\u06ba) \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648 \u0633\u06a9\u062a\u0627\u06d4<\/p>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0642\u062f\u0631 \u06a9\u0627 \u0627\u0638\u06c1\u0627\u0631 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u060c \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0638\u06c1\u0627\u0631 \u0646\u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0641\u0631\u0642 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u0628\u06cc\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0639\u062f \u0648\u0627\u0636\u062d \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u0627\u0646 \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06a9\u0648 \u0627\u0644\u062c\u06be\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0635\u0631\u0641 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0639\u0627\u062f\u062a \u0688\u0627\u0644 \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u0627 \u0627\u0637\u0644\u0627\u0642 \u06a9\u0633 \u062d\u062f \u062a\u06a9 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-over-using-shorthands-where-type-context-is-thin\">\u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0646\u0627\u0645\u0648\u06ba \u06a9\u0627 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u062c\u0628 \u0642\u0633\u0645 \u06a9\u0627 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0646\u0627\u0642\u0635 \u06c1\u0648\u06d4<\/h3>\n<pre><code class=\"language-dart\">\/\/ Problematic: the shorthand obscures which type fromJSON belongs to\nSomeConfig config = .fromJSON(data); \/\/ What class is this?\n\n\/\/ Better: be explicit when the type name adds real information\nSomeConfig config = SomeConfig.fromJSON(data);\n<\/code><\/pre>\n<p><code>.fromJSON(data)<\/code>    \u06cc\u06c1 \u062a\u06a9\u0646\u06cc\u06a9\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u0648\u0631\u06a9\u0646\u06af \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06c1\u06d2 \u0627\u06af\u0631: <code>SomeConfig<\/code> \u0627\u06af\u0631\u0686\u06c1 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2\u06d4 <code>fromJSON<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627 \u0646\u0627\u0645 \u0627\u062a\u0646\u0627 \u0639\u0627\u0645 \u06c1\u06d2 \u06a9\u06c1 \u067e\u06c1\u0644\u06cc \u0628\u0627\u0631 \u067e\u0691\u06be\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u06a9\u0648 \u06cc\u06c1 \u0645\u0639\u0644\u0648\u0645 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u06af\u0627 \u06a9\u06c1 \u0645\u062a\u063a\u06cc\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u06d2 \u0628\u063a\u06cc\u0631 \u06cc\u06c1 \u06a9\u0633 \u06a9\u0644\u0627\u0633 \u0633\u06d2 \u0622\u06cc\u0627 \u06c1\u06d2\u06d4 \u0634\u0627\u0645\u0644 <code>SomeConfig<\/code> \u0627\u06af\u0631 \u0622\u067e \u0627\u0633\u06d2 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06a9\u0627\u0644 \u0645\u06cc\u06ba \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0627\u0633\u06d2 \u0641\u0648\u0631\u0627\u064b \u067e\u0691\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0645\u0627\u0645 \u062f\u0631\u0633\u062a \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688\u0632 \u06a9\u0648 \u0628\u06c1\u062a\u0631 \u0646\u06c1\u06cc\u06ba \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-mini-end-to-end-example\">\u0645\u0646\u06cc \u0627\u06cc\u0646\u0688 \u0679\u0648 \u0627\u06cc\u0646\u0688 \u0645\u062b\u0627\u0644<\/h2>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644\u060c \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u062e\u0635\u0648\u0635\u06cc\u062a \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u062a\u0645\u0627\u0645 \u06a9\u0644\u06cc\u062f\u06cc \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0645\u06cc\u06ba \u0688\u0627\u0679 \u0645\u062e\u0641\u0641\u0627\u062a \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2: \u0634\u0645\u0627\u0631\u06cc\u0627\u062a\u060c \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u06d2\u060c \u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632\u060c \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633\u060c \u0627\u0648\u0631 \u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631\u0632\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u0627\u0646 \u0627\u06cc\u067e\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06cc\u0679 \u0648\u0631\u06a9 \u0627\u0633\u0679\u06cc\u0679\u0633 \u0627\u0646\u0688\u06cc\u06a9\u06cc\u0679\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u06c1\u06d2 \u062c\u0648 \u06a9\u0646\u06a9\u0634\u0646 \u0627\u0633\u0679\u06cc\u0679\u0633 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 UI \u0627\u0633\u0679\u06cc\u0679\u0633 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-the-enum-and-state-model\">\u0634\u0645\u0627\u0631\u06cc\u0627\u062a \u0627\u0648\u0631 \u0631\u06cc\u0627\u0633\u062a\u06cc \u0645\u0627\u0688\u0644<\/h3>\n<pre><code class=\"language-dart\">\/\/ lib\/models\/connection_state.dart\n\nenum ConnectionState {\n  connecting,\n  connected,\n  disconnected,\n  limited,\n  error;\n\n  bool get isActive => this == .connected || this == .limited;\n  bool get isTerminal => this == .disconnected || this == .error;\n\n  static ConnectionState fromCode(int code) {\n    return switch (code) {\n      0 => .connecting,\n      1 => .connected,\n      2 => .limited,\n      3 => .disconnected,\n      _ => .error,\n    };\n  }\n\n  String get label => switch (this) {\n    .connecting   => 'Connecting...',\n    .connected    => 'Connected',\n    .disconnected => 'Disconnected',\n    .limited      => 'Limited Connection',\n    .error        => 'Connection Error',\n  };\n}\n<\/code><\/pre>\n<p><code>bool get isActive => this == .connected || this == .limited<\/code>    \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>==<\/code> \u062e\u0635\u0648\u0635\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646\u06d4 <code>this<\/code> \u06c1\u06d2 <code>ConnectionState<\/code> \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u062a\u0648 <code>this == .connected<\/code> \u062d\u0644 <code>.connected<\/code> \u067e\u0633\u0646\u062f <code>ConnectionState.connected<\/code> \u0628\u0627\u0626\u06cc\u06ba \u0637\u0631\u0641 \u062c\u0627\u0645\u062f \u0642\u0633\u0645 \u0645\u06cc\u06ba <code>this<\/code>.<\/p>\n<p><code>static ConnectionState fromCode(int code)<\/code>    \u06cc\u06c1 \u06af\u0646\u062a\u06cc \u06a9\u0627 \u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f \u0641\u06cc\u06a9\u0679\u0631\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0633\u0648\u0626\u0686 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645 <code>ConnectionState<\/code> \u06c1\u0631 \u0627\u06cc\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>=><\/code> \u0646\u062a\u06cc\u062c\u06c1 <code>.connecting<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>ConnectionState.connecting<\/code>, <code>.connected<\/code> \u06a9\u0648 <code>ConnectionState.connected<\/code>\u0648\u063a\u06cc\u0631\u06c1<\/p>\n<p>\u06a9\u06c1 <code>_<\/code> \u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688 \u06a9\u06cc\u0633 \u0648\u0627\u067e\u0633 \u06a9\u0631\u06cc\u06ba\u06d4 <code>.error<\/code>\u06cc\u06c1 \u0628\u06be\u06cc \u0627\u0633 \u0633\u06d2 \u062d\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2: <code>ConnectionState.error<\/code>. <code>String get label<\/code> \u0633\u0648\u0626\u0686 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646\u0632 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>this<\/code>\u06cc\u06c1 \u062f\u0631\u062c \u0630\u06cc\u0644 \u06c1\u06d2: <code>ConnectionState<\/code>\u06a9\u06cc\u0633 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0631 \u0627\u06cc\u06a9 <code>.connecting<\/code>, <code>.connected<\/code>, <code>.disconnected<\/code>, <code>.limited<\/code>\u0627\u0648\u0631 <code>.error<\/code> \u06cc\u06c1 \u0645\u062a\u0639\u0644\u0642\u06c1 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-the-config-model\">\u062a\u0631\u062a\u06cc\u0628 \u0645\u0627\u0688\u0644<\/h3>\n<pre><code class=\"language-dart\">\/\/ lib\/models\/network_config.dart\n\nclass NetworkConfig {\n  final Duration timeout;\n  final int maxRetries;\n  final bool showDetailedErrors;\n\n  const NetworkConfig({\n    required this.timeout,\n    required this.maxRetries,\n    required this.showDetailedErrors,\n  });\n\n  factory NetworkConfig.standard() {\n    return NetworkConfig(\n      timeout: .zero,     \/\/ Duration context -> Duration.zero\n      maxRetries: .parse('3'), \/\/ int context -> int.parse('3')\n      showDetailedErrors: false,\n    );\n  }\n\n  factory NetworkConfig.debug() {\n    return NetworkConfig(\n      timeout: .fromSeconds(60),  \/\/ Duration context -> Duration.fromSeconds(60)\n      maxRetries: .parse('10'),   \/\/ int context -> int.parse('10')\n      showDetailedErrors: true,\n    );\n  }\n}\n<\/code><\/pre>\n<p><code>timeout: .zero<\/code>    \u0641\u06cc\u0644\u0688 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>Duration<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4 <code>.zero<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Duration.zero<\/code>. <code>maxRetries: .parse('3')<\/code> \u0641\u06cc\u0644\u0688 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>int<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4 <code>.parse('3')<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>int.parse('3')<\/code>\u06cc\u06c1 \u06c1\u06d2 <code>int<\/code>. <code>timeout: .fromSeconds(60)<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Duration.fromSeconds(60)<\/code>\u0646\u0627\u0645 \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 <code>Duration<\/code>.<\/p>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0633\u0627\u062f\u06c1 \u0644\u06cc\u06a9\u0646 \u062d\u0642\u06cc\u0642\u062a \u067e\u0633\u0646\u062f\u0627\u0646\u06c1 \u0646\u0645\u0648\u0646\u06c1 \u06c1\u06d2\u06d4 \u0627\u0628 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0641\u06cc\u06a9\u0679\u0631\u06cc \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631 \u06c1\u06d2 \u062c\u0648 \u0627\u0633 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0627\u06cc\u06a9 \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u06c1 \u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u0642\u0633\u0645 \u06a9\u0627 \u0633\u0646\u0679\u06cc\u0646\u0644 \u0644\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-the-status-widget\">\u0627\u0633\u0679\u06cc\u0679\u0633 \u0648\u06cc\u062c\u06cc\u0679<\/h3>\n<pre><code class=\"language-dart\">\/\/ lib\/widgets\/connection_status_widget.dart\n\nimport 'package:flutter\/material.dart';\nimport '..\/models\/connection_state.dart';\n\nclass ConnectionStatusWidget extends StatelessWidget {\n  final ConnectionState state;\n  final VoidCallback? onRetry;\n\n  const ConnectionStatusWidget({\n    super.key,\n    required this.state,\n    this.onRetry,\n  });\n\n  @override\n  Widget build(BuildContext context) {\n    return AnimatedSwitcher(\n      duration: .fromMilliseconds(300), \/\/ Duration context\n      child: _buildContent(context),\n    );\n  }\n\n  Widget _buildContent(BuildContext context) {\n    return Padding(\n      padding: .symmetric(horizontal: 16, vertical: 12), \/\/ EdgeInsets context\n      child: Row(\n        mainAxisAlignment: .spaceBetween, \/\/ MainAxisAlignment context\n        crossAxisAlignment: .center,      \/\/ CrossAxisAlignment context\n        children: [\n          Row(\n            mainAxisSize: .min, \/\/ MainAxisSize context\n            children: [\n              _buildIcon(),\n              const SizedBox(width: 8),\n              Text(\n                state.label,\n                style: TextStyle(\n                  fontWeight: .w500,    \/\/ FontWeight context\n                  color: _textColor(),\n                ),\n              ),\n            ],\n          ),\n          if (state == .error && onRetry != null)\n            TextButton(\n              onPressed: onRetry,\n              child: const Text('Retry'),\n            ),\n        ],\n      ),\n    );\n  }\n\n  Widget _buildIcon() {\n    final (IconData icon, Color color) = switch (state) {\n      .connecting   => (Icons.sync,          Colors.orange),\n      .connected    => (Icons.wifi,           Colors.green),\n      .disconnected => (Icons.wifi_off,       Colors.grey),\n      .limited      => (Icons.signal_wifi_4_bar_lock, Colors.amber),\n      .error        => (Icons.error_outline,  Colors.red),\n    };\n\n    return Icon(icon, color: color, size: 18);\n  }\n\n  Color _textColor() => switch (state) {\n    .connected    => Colors.green,\n    .error        => Colors.red,\n    .disconnected => Colors.grey,\n    _             => Colors.orange,\n  };\n}\n<\/code><\/pre>\n<p><code>duration: .fromMilliseconds(300)<\/code>    \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>Duration.fromMilliseconds(300)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>AnimatedSwitcher.duration<\/code> \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 <code>Duration<\/code>. <code>padding: .symmetric(horizontal: 16, vertical: 12)<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>EdgeInsets.symmetric(...)<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>Padding.padding<\/code> \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 <code>EdgeInsets<\/code>. <code>mainAxisAlignment: .spaceBetween<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>MainAxisAlignment.spaceBetween<\/code>. <code>crossAxisAlignment: .center<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>CrossAxisAlignment.center<\/code>. <code>mainAxisSize: .min<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>MainAxisSize.min<\/code>. <code>fontWeight: .w500<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>FontWeight.w500<\/code> \u06a9\u06cc\u0648\u0646\u06a9\u06c1 <code>TextStyle.fontWeight<\/code> \u06c1\u06d2 <code>FontWeight?<\/code>.<\/p>\n<p><code>if (state == .error && onRetry != null)<\/code>    \u0645\u0633\u0627\u0648\u0627\u062a \u062e\u0627\u0635 \u0627\u0635\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>state<\/code> \u062f\u0627\u062e\u0644 \u06a9\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2 <code>ConnectionState<\/code>\u062a\u0648 <code>.error<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>ConnectionState.error<\/code>. \u0627\u0646\u062f\u0631 \u0633\u0648\u0626\u0686 \u06a9\u0631\u06cc\u06ba <code>_buildIcon()<\/code> \u067e\u0631 \u0633\u0648\u0626\u0686 \u06a9\u0631\u06cc\u06ba <code>state<\/code> (\u0627\u0646 \u067e\u0679 <code>ConnectionState<\/code>)\u060c \u062c\u0648 \u062a\u0645\u0627\u0645 \u06a9\u06cc\u0633 \u067e\u06cc\u0679\u0631\u0646 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u06c1\u0631 \u0627\u06cc\u06a9 <code>.connecting<\/code>, <code>.connected<\/code>, <code>.disconnected<\/code>, <code>.limited<\/code>\u0627\u0648\u0631 <code>.error<\/code> \u06cc\u06c1 \u0645\u062a\u0639\u0644\u0642\u06c1 \u06af\u0646\u062a\u06cc \u06a9\u06cc \u0642\u062f\u0631 \u06a9\u0648 \u062d\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06a9\u06c1 <code>_textColor()<\/code> \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u0633\u0648\u0626\u0686 \u0628\u06be\u06cc \u0627\u06cc\u06a9 \u06c1\u06cc \u0633\u0627\u062e\u062a \u06c1\u06d2.<\/p>\n<h3 id=\"heading-the-screen\">\u0633\u06a9\u0631\u06cc\u0646<\/h3>\n<pre><code class=\"language-dart\">\/\/ lib\/screens\/network_demo_screen.dart\n\nimport 'package:flutter\/material.dart';\nimport '..\/models\/connection_state.dart';\nimport '..\/models\/network_config.dart';\nimport '..\/widgets\/connection_status_widget.dart';\n\nclass NetworkDemoScreen extends StatefulWidget {\n  const NetworkDemoScreen({super.key});\n\n  @override\n  State<networkdemoscreen> createState() => _NetworkDemoScreenState();\n}\n\nclass _NetworkDemoScreenState extends State<networkdemoscreen> {\n  ConnectionState _state = .connecting;        \/\/ enum shorthand on field\n  NetworkConfig _config = .standard();         \/\/ named constructor shorthand\n\n  void _simulateConnection() {\n    setState(() => _state = .connected);       \/\/ enum shorthand in closure\n  }\n\n  void _simulateError() {\n    setState(() => _state = .error);           \/\/ enum shorthand in closure\n  }\n\n  void _simulateDisconnect() {\n    setState(() => _state = .disconnected);    \/\/ enum shorthand in closure\n  }\n\n  void _resetToConnecting() {\n    setState(() {\n      _state = .connecting;                    \/\/ enum shorthand in block\n      _config = .debug();                      \/\/ named constructor shorthand\n    });\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: const Text('Network Status Demo'),\n        centerTitle: true,\n      ),\n      body: Column(\n        mainAxisAlignment: .center,            \/\/ enum shorthand on parameter\n        crossAxisAlignment: .stretch,\n        children: [\n          ConnectionStatusWidget(\n            state: _state,\n            onRetry: _state == .error ? _resetToConnecting : null,\n          ),\n          const Divider(),\n          Padding(\n            padding: .all(16),                \/\/ named constructor shorthand\n            child: Column(\n              mainAxisSize: .min,\n              children: [\n                Text(\n                  'Simulate state change:',\n                  style: TextStyle(fontWeight: .bold),\n                ),\n                const SizedBox(height: 12),\n                Row(\n                  mainAxisAlignment: .spaceEvenly,\n                  children: [\n                    ElevatedButton(\n                      onPressed: _simulateConnection,\n                      child: const Text('Connect'),\n                    ),\n                    ElevatedButton(\n                      onPressed: _simulateDisconnect,\n                      child: const Text('Disconnect'),\n                    ),\n                    ElevatedButton(\n                      onPressed: _simulateError,\n                      child: const Text('Error'),\n                    ),\n                  ],\n                ),\n                const SizedBox(height: 8),\n                TextButton(\n                  onPressed: _resetToConnecting,\n                  child: const Text('Reset'),\n                ),\n              ],\n            ),\n          ),\n          Padding(\n            padding: .symmetric(horizontal: 16), \/\/ named constructor shorthand\n            child: Card(\n              child: ListTile(\n                title: const Text('Config'),\n                subtitle: Text(\n                  'Timeout: ${_config.timeout.inSeconds}s | '\n                  'Retries: ${_config.maxRetries}',\n                ),\n                trailing: Switch(\n                  value: _config.showDetailedErrors,\n                  onChanged: null,\n                ),\n              ),\n            ),\n          ),\n        ],\n      ),\n    );\n  }\n}\n<\/networkdemoscreen><\/networkdemoscreen><\/code><\/pre>\n<p><code>ConnectionState _state = .connecting<\/code>    \u0648\u0627\u0636\u062d \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u06cc\u06ba\u06d4 <code>ConnectionState<\/code>\u06cc\u06c1 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>.connecting<\/code>. \u06cc\u06c1 \u0627\u0633 \u06a9\u06d2 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0624\u062b\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0645\u06cc\u06ba \u0633\u06d2 \u0627\u06cc\u06a9 \u06c1\u06d2\u06d4 \u0648\u06cc\u062c\u06cc\u0679 \u06a9\u06cc \u0627\u0633\u0679\u06cc\u0679 \u06a9\u0644\u0627\u0633 \u0645\u06cc\u06ba \u0627\u0633\u0679\u06cc\u0679\u0641\u0648\u0644 \u0641\u06cc\u0644\u0688\u0632 \u06a9\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0631\u0646\u0627 \u0627\u0628 \u0627\u06cc\u06a9 \u06c1\u06cc \u067e\u0691\u06be\u0627 \u06c1\u0648\u0627 \u0627\u0638\u06c1\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<p><code>NetworkConfig _config = .standard()<\/code>    \u062c\u0627\u0645\u062f \u0641\u06cc\u06a9\u0679\u0631\u06cc \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0648 \u06a9\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>NetworkConfig<\/code> \u0641\u06cc\u0644\u0688 \u06a9\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u062f\u06c1 \u0642\u0633\u0645 \u06a9\u0648 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 <code>setState(() => _state = .connected)<\/code> \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>.connected<\/code> \u0644\u06cc\u0645\u0628\u0688\u0627 \u06a9\u06d2 \u0627\u0646\u062f\u0631 <code>_state<\/code> \u0627\u0633 \u06a9\u0627 \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u0627\u0639\u0644\u0627\u0646 \u06a9\u06cc\u0627 \u062c\u0627 \u0686\u06a9\u0627 \u06c1\u06d2: <code>ConnectionState<\/code>. \u06a9\u0648 \u062a\u0641\u0648\u06cc\u0636 \u06a9\u06cc\u0627 \u06af\u06cc\u0627\u06d4 <code>_state<\/code> \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u0641\u0631\u0627\u06c1\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p><code>_state == .error ? _resetToConnecting : null<\/code>    \u0645\u0633\u0627\u0648\u0627\u062a \u062e\u0627\u0635 \u0627\u0635\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 <code>_state<\/code> \u06c1\u06d2 <code>ConnectionState<\/code>\u062a\u0648 <code>.error<\/code> \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba <code>ConnectionState.error<\/code>. <code>mainAxisAlignment: .center<\/code>, <code>crossAxisAlignment: .stretch<\/code>, <code>mainAxisSize: .min<\/code>, <code>fontWeight: .bold<\/code>, <code>mainAxisAlignment: .spaceEvenly<\/code> \u0633\u0628\u06be\u06cc \u06a9\u0648 \u0645\u062a\u0639\u0644\u0642\u06c1 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0686\u06cc\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>padding: .all(16)<\/code> \u0627\u0648\u0631 <code>padding: .symmetric(horizontal: 16)<\/code> \u0645\u06cc\u06ba \u062d\u0644 \u06a9\u0631\u06cc\u06ba <code>EdgeInsets<\/code> \u0632\u0645\u0631\u06c1 <code>Padding.padding<\/code>.<\/p>\n<h3 id=\"heading-the-entry-point\">\u062f\u0627\u062e\u0644\u06c1 \u067e\u0648\u0627\u0626\u0646\u0679<\/h3>\n<pre><code class=\"language-dart\">\/\/ lib\/main.dart\n\nimport 'package:flutter\/material.dart';\nimport 'screens\/network_demo_screen.dart';\n\nvoid main() {\n  runApp(const MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n  const MyApp({super.key});\n\n  @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Dot Shorthand Demo',\n      debugShowCheckedModeBanner: false,\n      theme: ThemeData(\n        colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),\n        useMaterial3: true,\n      ),\n      home: const NetworkDemoScreen(),\n    );\n  }\n}\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0641\u0644\u0679\u0631 \u0627\u0646\u0679\u0631\u06cc \u067e\u0648\u0627\u0626\u0646\u0679 \u06c1\u06d2\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06cc \u062e\u0635\u0648\u0635\u06cc\u062a \u0627\u06cc\u067e\u0633 \u06a9\u06d2 \u0645\u0631\u0628\u0648\u0637 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06d2 \u06a9\u0648 \u062a\u0628\u062f\u06cc\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u0633 \u06a9\u0648\u0688\u0628\u06cc\u0633 \u0645\u06cc\u06ba \u062a\u0645\u0627\u0645 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688\u0632 \u06a9\u0648 \u06a9\u0645\u067e\u0627\u0626\u0644 \u06a9\u06d2 \u0648\u0642\u062a \u0686\u06cc\u06a9 \u06a9\u06cc\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0628\u0627\u0644\u06a9\u0644 \u0648\u06c1\u06cc \u0628\u0627\u0626\u0646\u0631\u06cc \u062a\u06cc\u0627\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u06cc\u0633\u06d2 \u0622\u067e \u0646\u06d2 \u0645\u06a9\u0645\u0644 \u06a9\u0648\u0688 \u0644\u06a9\u06be\u0627 \u06c1\u0648\u06d4 <code>TypeName.member<\/code> \u06cc\u06c1 \u0645\u062c\u0645\u0648\u0639\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0634\u06a9\u06cc\u0644 \u067e\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u06cc\u06a9 \u0688\u0631\u0627\u0645\u0627\u0626\u06cc \u0644\u0633\u0627\u0646\u06cc \u062f\u0648\u0628\u0627\u0631\u06c1 \u0688\u06cc\u0632\u0627\u0626\u0646 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0632\u0646\u062f\u06af\u06cc \u06a9\u06d2 \u0645\u0639\u06cc\u0627\u0631 \u06a9\u06cc \u0627\u06cc\u06a9 \u062f\u0631\u0633\u062a \u0628\u06c1\u062a\u0631\u06cc \u06c1\u06d2 \u062c\u0648 \u0688\u0627\u0631\u0679 \u0627\u0648\u0631 \u0641\u0644\u0679\u0631 \u06a9\u0648\u0688 \u0633\u06d2 \u0634\u0648\u0631 \u06a9\u06cc \u0627\u06cc\u06a9 \u0645\u062e\u0635\u0648\u0635\u060c \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u0633\u06d2 \u0645\u062a\u0639\u06cc\u0646 \u06a9\u06cc\u0679\u06cc\u06af\u0631\u06cc \u06a9\u0648 \u06c1\u0679\u0627\u062a\u06cc \u06c1\u06d2: \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645\u0648\u06ba \u06a9\u06cc \u062a\u06a9\u0631\u0627\u0631 \u062c\u0648 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062c\u06c1\u0627\u06ba \u0628\u06be\u06cc \u0622\u067e \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0622\u067e \u0635\u0627\u0641 \u0627\u0648\u0631 \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0646\u062a\u06cc\u062c\u06d2 \u0645\u06cc\u06ba \u0622\u0646\u06d2 \u0648\u0627\u0644\u0627 \u06a9\u0648\u0688 \u062f\u06c1\u0631\u0627\u0626\u06d2 \u062c\u0627\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0633\u0627\u0628\u0642\u0648\u06ba \u06a9\u06d2 \u0628\u0635\u0631\u06cc \u0627\u0648\u0648\u0631 \u06c1\u06cc\u0688 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0639\u0646\u06cc \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633 \u062e\u0635\u0648\u0635\u06cc\u062a \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0645\u062a\u0646\u0627\u0633\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0622\u067e \u0634\u0645\u0627\u0631\u06cc\u0627\u062a\u060c \u062c\u0627\u0645\u062f \u0641\u06cc\u06a9\u0679\u0631\u06cc\u0627\u06ba\u060c \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632\u060c \u0627\u0648\u0631 \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633 \u06a9\u0627 \u06a9\u062a\u0646\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0622\u067e \u0641\u0644\u0679\u0631 \u0648\u06cc\u062c\u0679 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0627\u0646 \u0633\u0628 \u06a9\u0648 \u0645\u0633\u0644\u0633\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u0631\u06c1\u06cc\u06ba \u06af\u06d2\u06d4 \u0627\u0633\u06cc \u0644\u06cc\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0645\u06cc\u0648\u0646\u0679\u06cc \u06a9\u0627 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u067e\u0631 \u0631\u062f\u0639\u0645\u0644 \u0627\u062a\u0646\u0627 \u0645\u0636\u0628\u0648\u0637 \u0627\u0648\u0631 \u0645\u062b\u0628\u062a \u0631\u06c1\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u0627 \u0646\u0645\u0648\u0646\u06c1 \u06c1\u06d2 \u062c\u0633\u06d2 Flutter \u0688\u0648\u06cc\u0644\u067e\u0631\u0632 \u06c1\u0631 \u0631\u0648\u0632 \u062a\u062e\u0644\u06cc\u0642 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0622\u067e \u062c\u0633 \u067e\u06c1\u0644\u06d2 \u0648\u06cc\u062c\u06cc\u0679 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u0633\u06d2 \u0622\u067e \u06a9\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0634\u0648\u0631 \u0645\u06cc\u06ba \u06a9\u0645\u06cc \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u06cc\u06d4<\/p>\n<p>\u0630\u06c1\u0646\u06cc \u0645\u0627\u0688\u0644 \u062c\u0633 \u06a9\u0648 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u0627 \u0636\u0631\u0648\u0631\u06cc \u06c1\u06d2 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06d2 \u0645\u0631\u06a9\u0632 \u0645\u06cc\u06ba \u0648\u0627\u062d\u062f \u0627\u0635\u0648\u0644 \u06c1\u06d2\u06d4 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0645\u0631\u062a\u0628 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u0627 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0645\u062a\u0648\u0642\u0639 \u0642\u0633\u0645 \u06a9\u0648 \u062c\u0627\u0646\u062a\u0627 \u06c1\u0648\u06d4 \u0627\u06cc\u06a9 \u0628\u0627\u0631 \u062c\u0628 \u0648\u06c1 \u0627\u0635\u0648\u0644 \u0648\u0627\u0636\u062d \u06c1\u0648 \u062c\u0627\u0626\u06cc\u06ba \u062a\u0648 \u0641\u0646\u06a9\u0634\u0646 \u0642\u0627\u0628\u0644 \u0642\u06cc\u0627\u0633 \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0622\u067e \u06a9\u0648 \u0641\u0648\u0631\u06cc \u0637\u0648\u0631 \u067e\u0631 \u067e\u062a\u06c1 \u0686\u0644 \u062c\u0627\u0626\u06d2 \u06af\u0627 \u06a9\u06c1 \u0622\u06cc\u0627 \u0634\u0627\u0631\u0679 \u06a9\u0679 \u06a9\u0633\u06cc \u0645\u062e\u0635\u0648\u0635 \u062c\u06af\u06c1 \u067e\u0631 \u062f\u0631\u0633\u062a \u06c1\u06d2\u06d4 \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u06a9\u06cc \u0642\u0633\u0645 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0639\u0644\u0627\u0645\u06cc\u06c1\u060c \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u0642\u0633\u0645\u060c \u0648\u0627\u067e\u0633\u06cc \u06a9\u06cc \u0642\u0633\u0645\u060c \u06cc\u0627 \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u0627 \u0645\u0648\u0627\u0632\u0646\u06c1 \u0628\u0627\u0626\u06cc\u06ba \u062c\u0627\u0646\u0628 \u0633\u06d2 \u06c1\u0648\u06d4 \u0627\u06af\u0631 \u0646\u06c1\u06cc\u06ba (\u0645\u06cc\u06ba <code>var<\/code>, <code>dynamic<\/code>\u06cc\u0627 \u0627\u06cc\u06a9 \u063a\u06cc\u0631 \u062a\u0628\u0635\u0631\u06c1 \u0634\u062f\u06c1 \u0627\u0638\u06c1\u0627\u0631)\u060c \u0627\u06cc\u0633\u0627 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u06cc\u0633 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u0627\u0646\u06d2 \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1 \u0622\u0633\u0627\u0646 \u06c1\u06d2\u06d4 SDK \u0631\u06a9\u0627\u0648\u0679\u0648\u06ba \u06a9\u0648 \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u06d4 <code>pubspec.yaml<\/code>. \u0686\u0627\u0644\u0648 <code>prefer-shorthands-with-enums<\/code> \u0627\u06af\u0631 \u0622\u067e \u06a9\u06cc \u0679\u06cc\u0645 \u0627\u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06cc \u06c1\u06d2 \u062a\u0648 DCM \u06a9\u06d2 Lint \u06a9\u06d2 \u0627\u0635\u0648\u0644 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u0644\u0646\u0679\u0631\u0632 \u06a9\u0648 \u0633\u0628 \u0633\u06d2 \u0642\u06cc\u0645\u062a\u06cc \u0645\u0648\u0627\u0642\u0639 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u062f\u06cc\u06ba\u06d4 \u067e\u06c1\u0644\u06d2 \u0633\u0648\u0626\u0686 \u0627\u0633\u0679\u06cc\u0679\u0645\u0646\u0679\u0633 \u0627\u0648\u0631 \u0648\u06cc\u062c\u06cc\u0679 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u06cc \u06af\u0646\u062a\u06cc \u06a9\u0648 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0648\u06c1 \u062c\u06af\u06c1 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0633\u06cc\u0627\u0642 \u0648 \u0633\u0628\u0627\u0642 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0627\u0636\u062d \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0635\u0631\u06cc \u0641\u0627\u0626\u062f\u06c1 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06c1\u06d2\u06d4 \u0648\u06c1\u0627\u06ba \u0633\u06d2\u060c \u06c1\u0645 \u0646\u0627\u0645\u0632\u062f \u06a9\u0646\u0633\u0679\u0631\u06a9\u0679\u0631\u0632 \u0627\u0648\u0631 \u062c\u0627\u0645\u062f \u0637\u0631\u06cc\u0642\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u06c1\u0627\u06ba \u0642\u0633\u0645 \u06a9\u06d2 \u0646\u0627\u0645 \u062f\u0631\u0627\u0635\u0644 \u0641\u0627\u0644\u062a\u0648 \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u0641\u06cc\u0686\u0631 \u0627\u0628 Dart 3.10\u060c Flutter 3.38\u060c \u0627\u0648\u0631 DartPad \u0645\u06cc\u06ba \u062f\u0633\u062a\u06cc\u0627\u0628 \u06c1\u06d2\u06d4 \u0645\u06a9\u0645\u0644 \u0641\u0627\u0631\u0645 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0644\u06a9\u06be\u0627 \u06c1\u0648\u0627 \u0645\u0648\u062c\u0648\u062f\u06c1 \u06a9\u0648\u0688 \u0628\u063a\u06cc\u0631 \u06a9\u0633\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc \u06a9\u06d2 \u0645\u0631\u062a\u0628 \u06c1\u0648\u062a\u0627 \u0631\u06c1\u06d2 \u06af\u0627\u06d4 \u06af\u0648\u062f \u0644\u06cc\u0646\u0627 \u0645\u06a9\u0645\u0644 \u0637\u0648\u0631 \u067e\u0631 \u0628\u062a\u062f\u0631\u06cc\u062c \u06c1\u06d2\u06d4 \u06c1\u062c\u0631\u062a \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u0622\u062e\u0631\u06cc \u062a\u0627\u0631\u06cc\u062e \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u06a9\u0648\u0626\u06cc \u0641\u0631\u0633\u0648\u062f\u06af\u06cc \u06a9\u06cc \u0648\u0627\u0631\u0646\u0646\u06af \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0637\u0631\u0632 \u0639\u0645\u0644 \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0641\u0631\u0642 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u06d4 \u06a9\u0648\u0688 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u06c1\u06cc \u06a9\u06cc\u0627 \u06a9\u06c1\u06c1 \u0631\u06c1\u0627 \u06c1\u06d2 \u0627\u0633 \u06a9\u06d2 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u0627 \u06cc\u06c1 \u0635\u0631\u0641 \u0627\u06cc\u06a9 \u0635\u0627\u0641 \u0633\u062a\u06be\u0631\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-references\">\u062d\u0648\u0627\u0644\u06c1 \u062c\u0627\u062a<\/h2>\n<ul wp_automatic_readability=\"9.1128337639966\">\n<li wp_automatic_readability=\"6.0879478827362\">\n<p><strong>\u0688\u0627\u0631\u0679 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0632\u0628\u0627\u0646 \u06a9\u0627 \u062d\u0648\u0627\u0644\u06c1:<\/strong> \u0645\u06a9\u0645\u0644 \u0646\u062d\u0648\u060c \u062a\u0645\u0627\u0645 \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0645\u0639\u0627\u0645\u0644\u0627\u062a\u060c <code>==<\/code> \u0627\u0648\u0631 <code>!=<\/code> \u062e\u0635\u0648\u0635\u06cc \u0642\u0648\u0627\u0639\u062f\u060c \u0645\u0646\u0633\u0648\u062e \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0627\u0642\u0633\u0627\u0645\u060c \u0627\u0648\u0631 <code>FutureOr<\/code>. \u0627\u0633 \u06c1\u06cc\u0646\u0688 \u0628\u06a9 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0645\u0648\u0627\u062f \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0633\u062a\u0646\u062f \u062d\u0648\u0627\u0644\u06c1\u06d4<br \/>https:\/\/dart.dev\/language\/dot-shorthands<\/p>\n<\/li>\n<li wp_automatic_readability=\"3.0794979079498\">\n<p><strong>\u0688\u0627\u0631\u0679 3.10 \u062c\u0627\u0631\u06cc \u06a9\u06cc\u0627 \u06af\u06cc\u0627:<\/strong> \u0688\u0627\u0631\u0679 3.10 \u0627\u0648\u0631 \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0641\u06cc\u0686\u0631 \u06a9\u0627 \u0627\u0639\u0644\u0627\u0646 \u06a9\u0631\u0646\u06d2 \u0648\u0627\u0644\u06cc \u0622\u0641\u06cc\u0634\u0644 \u0688\u0627\u0631\u0679 \u0628\u0644\u0627\u06af \u067e\u0648\u0633\u0679\u06d4 \u062d\u0648\u0635\u0644\u06c1 \u0627\u0641\u0632\u0627\u0626\u06cc\u060c \u0633\u0631\u062e\u06cc \u06a9\u06cc \u0645\u062b\u0627\u0644\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0645\u0636\u0645\u0648\u0646 \u06a9\u06d2 \u0644\u0646\u06a9\u0633 \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4<br \/>https:\/\/blog.dart.dev\/announce-dart-3-10-ea8b952b6088<\/p>\n<\/li>\n<li wp_automatic_readability=\"1.5982142857143\">\n<p><strong>\u0688\u0627\u0631\u0679 \u0632\u0628\u0627\u0646 \u06a9\u0627 \u0627\u0631\u062a\u0642\u0627\u0621:<\/strong> \u0627\u06cc\u06a9 \u0645\u06a9\u0645\u0644 \u0688\u0627\u0631\u0679 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u0648\u0631\u0698\u0646 \u06a9\u06cc \u062a\u0627\u0631\u06cc\u062e\u060c \u062c\u0633 \u0645\u06cc\u06ba \u0648\u0631\u0698\u0646 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0645\u062a\u0639\u0627\u0631\u0641 \u06a9\u0631\u0627\u0626\u06cc \u06af\u0626\u06cc \u062a\u0645\u0627\u0645 \u062e\u0635\u0648\u0635\u06cc\u0627\u062a \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u06a9\u06c1 \u0641\u06cc\u0686\u0631 \u06a9\u0648 \u06a9\u0633 \u0632\u0628\u0627\u0646 \u06a9\u06d2 \u0648\u0631\u0698\u0646 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 https:\/\/dart.dev\/resources\/language\/evolution<\/p>\n<\/li>\n<li wp_automatic_readability=\"2.9587628865979\">\n<p><strong>\u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u0641\u0646\u06a9\u0634\u0646 \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a\u06cc\u06ba:<\/strong> \u0688\u0627\u0631\u0679 \u0644\u06cc\u0646\u06af\u0648\u06cc\u062c \u06af\u0679 \u06c1\u0628 \u0631\u06cc\u067e\u0648\u0632\u0679\u0631\u06cc \u0645\u06cc\u06ba \u0688\u0627\u0679 \u0634\u0627\u0631\u0679 \u06c1\u06cc\u0646\u0688 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0633\u0631\u06a9\u0627\u0631\u06cc \u0632\u0628\u0627\u0646 \u06a9\u06cc \u062a\u0641\u0635\u06cc\u0644\u0627\u062a\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u0646\u062d\u0648 \u06a9\u06cc \u062a\u0628\u062f\u06cc\u0644\u06cc\u0627\u06ba\u060c \u0642\u0633\u0645 \u06a9\u06d2 \u0642\u06cc\u0627\u0633 \u06a9\u06d2 \u0627\u0635\u0648\u0644\u060c \u0627\u0648\u0631 \u06c1\u0631 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06d2 \u0641\u06cc\u0635\u0644\u06d2 \u06a9\u06cc \u0648\u062c\u0648\u06c1\u0627\u062a \u0634\u0627\u0645\u0644 \u06c1\u06cc\u06ba\u06d4 <code>FutureOr<\/code> \u06c1\u06cc\u0646\u0688\u0644\u0646\u06af \u0688\u06cc\u067e\u0627\u0631\u0679\u0645\u0646\u0679 <code>==<\/code> \u062e\u0635\u0648\u0635\u06cc \u0642\u0648\u0627\u0646\u06cc\u0646\u06d4<br \/>https:\/\/github.com\/dart-lang\/language\/blob\/main\/accepted\/3.10\/dot-shorthands\/feature-specation.md<\/p>\n<\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06af\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u0645\u0627\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0631\u0635\u06d2 \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0648\u0688 \u0644\u06a9\u06be \u0631\u06c1\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 \u0622\u067e \u0646\u06d2 \u0634\u0627\u06cc\u062f \u062f\u0631\u062c \u0630\u06cc\u0644 \u0633\u0637\u0631 \u06a9\u0648 \u0633\u06cc\u0646\u06a9\u0691\u0648\u06ba \u0628\u0627\u0631 \u0644\u06a9\u06be\u0627 \u06c1\u0648\u06af\u0627: mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, \u0622\u067e \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06c1\u0631 \u067e\u06cc\u0631\u0627\u0645\u06cc\u0679\u0631 \u06a9\u0648 \u06a9\u0633 \u0642\u0633\u0645 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 IDE \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4 \u0688\u0627\u0631\u0679 \u06a9\u0645\u067e\u0627\u0626\u0644\u0631 \u062c\u0627\u0646\u062a\u0627 \u06c1\u06d2\u06d4 \u062a\u0627\u06c1\u0645\u060c \u062c\u0628 \u0628\u06be\u06cc \u0622\u067e [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-25871","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/25871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=25871"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/25871\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=25871"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=25871"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=25871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}