آموزش دونه:مرجع آموزش

آرایه ها در اف شارپ بخش اول ( Fsharp Array1) آموزش برنامه نویسی اف شارپ #F

Fsharp Array1 Fsharp Array1 Fsharp Array1 Fsharp Array1 Fsharp Array1 

اف شارپ

آرایه ها در #F

آرایه ها fixed-size, zero-based, mutable از عناصر داده متوالی هستند که همه ی آن ها از یک نوع می باشند.

ایجاد آرایه ها در #F

شما می توانید آرایه ها را با استفاده از سینتکس های مختلف و روش ها و یا با استفاده از توابعی از ماژول Array ایجاد کنید.

در این بخش ما درباره ایجاد آرایه ها بدون استفاده از توابع ماژول بحث خواهیم کرد.
سه روش syntactical برای ایجاد آرایه ها بدون توابع وجود دارد.

با فهرست مقادیر متوالی بین [| و |] که با semicolons جدا شده است.

با قرار دادن هر عنصر در یک خط جداگانه، در این صورت جداساز semicolon اختیاری است.

با استفاده از عبارات توالی با استفاده از یک اپراتور نقطه (.) و براکت ([و]) می توانید از عناصر آرایه استفاده کنید.

مثال

خروجی

در ادامه عملیات پایه در آرایه ها در #F روخواهیم داشت.

عملیات پایه در آرایه ها در #F

ماژول کتابخانه Microsoft.FSharp.Collections.Array از عملیات در آرایه های یک بعدی پشتیبانی می کند.
جدول زیر عملیات پایه در آرایه ها در #F را نشان می دهد.

مقدارتوضیحات
[]append : ‘T [] → ‘T [] → ‘Tآرایه ای ایجاد می کند که شامل عناصر یک آرایه به دنبال عناصر آرایه دیگری است.
average : ^T [] → ^Tمیانگین عناصر در یک آرایه را به دست می آورد.
averageBy : (‘T → ^U) → ‘T [] → ^Uمیانگین عناصر ایجاد شده توسط اعمال یک تابع به هر عنصر آرایه را بازمی گرداند.
blit : ‘T [] → int → ‘T [] → int → int → unitتعدادی از عناصر را از یک آرایه می خواند و آنها را در دیگری می نویسد.
[]choose : (‘T → U option) → ‘T [] → ‘Uیک تابع عرضه شده به هر عنصر آرایه اعمال می شود.

آرایه ای را که حاوی نتایج x برای هر عنصر است برای این که آن تابع ( Some (x را بازگرداند.

[]collect : (‘T → ‘U []) → T [] → ‘Uتابع عرضه شده را به هر عنصر آرایه اعمال می کند، نتایج را تلفیق می کند و آرایه ترکیبی را باز می گرداند.
[]concat : seq<‘T []> → ‘Tیک آرایه را ایجاد می کند که شامل عناصر هر کدام از آرایه های ارائه شده می باشد.
[]copy : ‘T → ‘Tآرایه ای را ایجاد می کند که حاوی عناصر آرایه ارائه شده است.
[]create : int → ‘T → ‘Tیک آرایه ایجاد می کند که مقدار عناصر آن به اندازه ی عرضه ابتدایی است.
[]empty : ‘Tیک آرایه خالی از نوع داده را برمی گرداند.
exists : (‘T → bool) → ‘T [] → boolتست این که آیا هر عنصر از یک آرایه، پیش فرض ارائه شده را برآورده می کند.
exists2 : (‘T1 → ‘T2 → bool) → ‘T1 [] → ‘T2 [] → boolتست این که آیا هر جفت عناصر مربوطه از دو آرایه شرایط عرضه شده را برآورده می کند.
[]fill : ‘T [] → int → int → ‘T → unitمقدار عناصر آرایه را با مقدار عرضه شده پر می کند.
filter : (‘T → bool) → ‘T [] → ‘Tمجموعه ای را که حاوی تنها عناصری از آرایه های ارائه شده است را برای این که وضعیت بازگشت true عرضه شود.
find : (‘T → bool) → ‘T [] → ‘Tاولین عنصر را بازمی گرداند که تابع ارائه شده true را بازگرداند.

KeyNotFoundException را اعلام می کند، اگر چنین عنصری وجود ندارد.

findIndex : (‘T → bool) → ‘T [] → intشاخص اول عنصر را در یک آرایه نمایش می دهد که شرایط عرضه شده را برآورده می کند.

KeyNotFoundException را اعلام می کند، اگر هیچ یک از عناصر این شرط را برآورده نمی کند.

fold : (‘State → ‘T → ‘State) → ‘State → ‘T [] → ‘Stateیک تابع را برای هر عنصر آرایه اعمال می کند.

یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

اگر تابع ورودی f است و عناصر آرایه i0 … iN، این تابع f (… (f s i0) …) iN را محاسبه می کند.

fold2 : (‘State → ‘T1 → ‘T2 → ‘State) → ‘State → ‘T1 [] → ‘T2 [] → ‘Stateیک تابع را به جفت عناصر از دو آرایه ارائه شده، از چپ به راست اپلای می کند یک آرگومان accumulator را از طریق محاسبات تری.

دینگ می کند.

دو آرایه ورودی باید طول یکسان داشته باشند.

در غیر این صورت، ArgumentException مطرح شده است.

foldBack : (‘T → ‘State → ‘State) → ‘T [] → ‘State → ‘Stateیک تابع را برای هر عنصر آرایه اعمال می کند.

یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

اگر تابع ورودی f باشد و عناصر آرایه i0 … iN باشد، این تابع (( f i0 (… (f iN s را محاسبه می کند.

foldBack2 : (‘T1 → ‘T2 → ‘State → ‘State) → ‘T1 [] → ‘T2 [] → ‘State → ‘Stateیک تابع به جفت عناصر از دو آرایه ی ارائه شده اعمال  می شود.

یک آرگومان accumulator را از طریق محاسبات تریدینگ می کند.

دو آرایه ورودی باید طول یکسان داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

forall : (‘T → bool) → ‘T [] → boolتست این که آیا تمام عناصر آرایه شرایط عرضه شده را برآورده می کنند.
forall2 : (‘T1 → ‘T2 → bool) → ‘T1 [] → ‘T2 [] → boolتست این که آیا تمام عناصر متناظر دو آرایه ارائه شده، شرایط عرضه شده را برآورده می کنند.
get : ‘T [] → int → ‘Tعنصر را از یک آرایه می گیرد.
[]init : int → (int → ‘T) → ‘Tیک تابع عرضه شده برای ایجاد آرایه ای از ابعاد عرضه شده استفاده می کند.
isEmpty : ‘T [] → boolتست این که آیا یک آرایه حاوی عناصر است
iter : (‘T → unit) → ‘T [] → unitتابع عرضه شده را به هر عنصر آرایه اعمال می کند.
(iter2 : (‘T1 → ‘T2 → unit) → ‘T1 [] → ‘T2 [] → unitتابع عرضه شده را به یک جفت عناصر برای تطابق شاخص ها در دو آرایه اعمال می کند.

دو آرایه باید طول یکسان داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

iteri : (int → ‘T → unit) → ‘T [] → unitتابع عرضه شده را به هر عنصر آرایه اعمال می کند.

عدد صحیح منتقل شده به تابع نشان دهنده index عنصر است.

iteri2 : (int → ‘T1 → ‘T2 → unit) → ‘T1 [] → ‘T2 [] → unitتابع عرضه شده را به یک جفت عنصر از تطبیق شاخص ها در دو آرایه اعمال می کند.

همچنین index عناصر را منتقل می کند.

دو آرایه باید طول یکسان داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

length : ‘T [] → intطول آرایه را برمی گرداند.

ویژگی Length هم همین کار را می کند.

[]map : (‘T → ‘U) → ‘T [] → ‘Uیک آرایه ایجاد می کند که عناصر آن نتایج اعمال تابع عرضه شده به هر یک از عناصر یک آرایه ارائه شده است.
[]map2 : (‘T1 → ‘T2 → ‘U) → ‘T1 [] → ‘T2 [] → ‘Uیک آرایه ایجاد می کند که عناصر آن نتایج اعمال تابع عرضه شده به عناصر متناظر دو آرایه ارائه شده است.

دو آرایه ورودی باید طول یکسان داشته باشند؛ در غیر این صورت، ArgumentException مطرح شده است.

[]mapi : (int → ‘T → ‘U) → ‘T [] → ‘Uیک آرایه ایجاد می کند که عناصر آن نتایج اعمال تابع عرضه شده به هر یک از عناصر یک آرایه ارائه شده است.

یک اینتجر ایندکس به تابع منتقل می شود که نشان دهنده index عنصر تبدیل شده است.

 

مطالب مرتبط