دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۶
  • اردیبهشت

جلسه ۲۴-۰۱ : Basic I/O در #F

  • دسته‌بندی‌ها :
جلسه ۲۴-۰۱ : Basic I/O در #F
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. مبحث Basic I/O در #F رو در سه جلسه خواهیم داشت در این جلسه به بیان خصوصیات Format در #F و ماژول Core.Printf همراه با مثالی می پردازیم. با ما همراه باشید.

      Basic I/O در #F

      Basic Input Output شامل :

      • خواندن و نوشتن از console.
      • خواندن و نوشتن از file.

      ماژول Core.Printf

      ما از تابع printf و printfn  برای نوشتن در کنسول استفاده می کنیم.

      در این قسمت به جزئیات ماژول printf در #F نگاهی داریم. جدا از تابع بالا ماژول Core.printf در اف شارپ متدهای متغیر دیگری برای printig و formatting با استفاده از نشانه ی % به عنوان placeholders دارد.

       جدول خلاصه توضیحات در مورد متد های نشان داد شده را دنبال کنید

      ValueDescription
      bprintf : StringBuilder → BuilderFormat<‘T> → ‘Tپرینت به یک StringBuilder
      eprintf : TextWriterFormat<‘T> → ‘Tپرینت فرمت خروجی به stderr
      eprintfn : TextWriterFormat<‘T> → ‘Tپرینت فرمت خروجی به stderr و اضافه کردن newline (خط جدید).
      failwithf : StringFormat<‘T,’Result> → ‘Tپرینت به یک بافر رشته و اجرای یک exception با نتیجه داده شده.
      fprintf : TextWriter → TextWriterFormat<‘T> → ‘Tپرینت به یک نویسنده متن
      fprintfn : TextWriter → TextWriterFormat<‘T> → ‘Tپرینت به یک نویسنده متن و اضافه کردن newline (خط جدید).
      kbprintf : (unit → ‘Result) → StringBuilder → BuilderFormat<‘T,’Result> → ‘Tشبیه bprintf، اما تابع تعیین شده را برای تولید نتیجه فراخوانی می کند.
      kfprintf : (unit → ‘Result) → TextWriter → TextWriterFormat<‘T,’Result> → ‘Tشبیه fprintf، اما تابع تعیین شده رابرای تولید نتیجه فراخوانی می کند.
      kprintf : (string → ‘Result) → StringFormat<‘T,’Result> → ‘Tشبیه printf، اما تابع تعیین شده رابرای تولید نتیجه فراخوانی می کند. برای مثال این اجازه می دهد پرینت اجباری یک flush  را بعد از این که همه ورودی ها وارد کانال شده باشند. اما نه قبل آن.
      ksprintf : (string → ‘Result) → StringFormat<‘T,’Result> → ‘Tشبیه sprintf اما تابع تعیین شده رابرای تولید نتیجه فراخوانی می کند.
      printf : TextWriterFormat<‘T> → ‘Tفرمت خروجی را به stdout پرینت می کند.
      printfn : TextWriterFormat<‘T> → ‘Tفرمت خروجی را به stdout پرینت می کند.  newline (خط جدید) اضافه می کند.
      sprintf : StringFormat<‘T> → ‘Tرشته را به وسیله یک بافر رشته internal پرینت می کند و نتیجه را به عنوان رشته باز می گرداند.

      خصوصیات Format در #F

      خصوصیات Format در #F برای فرمت ورودی و خروجی استفاده می شوند. با توجه به نیاز برنامه نویسان.

      این ها رشته هایی با نشانه ی % که مشخص کننده فرمت placeholders هستند می باشند.

      سینتکس فرمت placeholders در زیر آمده است. (خصوصیات Format در #F)

      مثال : 

      تفسیر type در زیر آمده است.

      مقدارتوضیحات
      b%فرمت یک بولین ،فرمت می کند به عنوان true یا fals
      c%یک کاراکتر را فرمت می کند.
      s% فرمت یک رشته، فرمت به عنوان محتوا، بدون تفسیر هیچ کاراکتر گریزی (escape )
      d, %i%فرمت هر نوع basic integer ،فرمت می کند به عنوان decimal integer و signed اگر basic integer از نوع signed باشد.
      u%فرمت هر نوع basic integer به عنوان یک unsigned decimal integer

       

      x%فرمت هر نوع basic integer به عنوان یک unsigned hexadecimal integer ،با استفاده از حروف کوچک الفبا از aتا f

       

      X%فرمت هر نوع basic integer به عنوان یک unsigned hexadecimal intege، با استفاده از حروف بزرگ A تا F

       

      o%فرمت هر نوع basic integer فرمت می شود به عنوان یک unsigned octal integer .

       

      e, %E, %f, %F, %g, %G%فرمت هر نوع (basic floating point type (float, float32 فرمت می شود با استفاده از یک مشخصه فرمت C-style floating point.

       

      e, %E%فرمت یک مقدار signed با داشتن فرم  [-]d.dddde[sign]ddd که d تنها یک decimal digit و dddd یکی یا بیش تر decimal digits است. ddd دقیقا سه decimal digits است و sign یا علامت – یا + است.

       

      f%فرمت یک مقدار signed فرم [-]dddd.dddd را دارد که dddd یکی یا بیش تر decimal digits است.

      تعداد digits یا رقم ها قبل از decimal point یا ممیز اعشاری به دامنه ی اعداد دارد تعدا اعشار بعد از ممیز اعشاری بستگی به دقت درخواست دارد.

       

      g, %G%فرمت یک مقدار signed در فرمت f یا e پرینت می شود.

      هر یک خلاصه ای برای دادن مقدار و رقم دقت

      Formats a signed value printed in f or e format, whichever is more compact for the given value and precision.

      M%فرمت یک مقدار Decimal

       

      O%فرمت های هر مقدار، پرینت می شود به وسیله boxing آبجکت و با استفاده از متد ToString

       

      A, %+A%فرمت های هر مقدار، پرینت می شود با تنظیمات لایوت پیش فرض. برای پرینت ساختار مشخصه unions با نمایش internal و private از A+% استفاده می شود

       

      a%یک فرمت تصریح کننده عمومی، نیاز به دو آرگومان دارد. اولین آرگومان یک تابع است که دو ارگومان را می پذیرد:

      اولی یک پارامتر کانتکست نوع appropriate یا اختصاصی برای دادن فرمت تابع(برای مثال یک TextWriter ).

      دومی یک مقدار برای پرینت و این که هر کدام از outputs یا تکست appropriate را بازگردانند.

      دومین آرگومان مقدار دقیق تری برای پرینت است.

       

      t%یک تصریح کننده فرمت جنرال، نیاز به یک آرگومان دارد.

      فانکشنی که پارامتر کانتکست نوع appropriate را برای تابع فرمت (aTextWriter) داده شده بپذیرد

      و تابعی که هر کدام ازخروجی ها یا بازگشت appropriate text را دارد.

      نوع Basic integer هستند byte, sbyte, int16, uint16, int32, uint32, int64, uint64, nativeint و unativeint. نوع Basic floating point هستند float و float32

      عرض یک پارامتر اختیاری است. این یک عدد صحیح است که عرض حداقل نتیجه را نشان می دهد. به عنوان مثال،٪ ۵d عدد صحیح را با حداقل فضاهای ۵ کاراکتری چاپ می کند.

      flags معتبر در جدول داده شده توضیح داده شده اند.

      مقدارتوضیحات
      ۰  اضافه کردن صفر به جای اسپیس برای ایجاد پهنای مورد نیاز را تعیین می کند.

       

       برای left-justify نتایج با پهنای مشخص شده را مشخص می کند.

       

      +مشخص می کند که یک کاراکتر + اضافه شود اگر عدد مثبت باشد (برای مطابقت یک علامت – برای اعداد منفی).
      ‘ ‘ (space)مشخص می کند اضافه کردن فضای اضافی اگر عدد مثبت است (برای مطابقت یک علامت – برای اعداد منفی).
      #بی اعتبار.

      خب تا این جا از مبحث Basic I/O در #F به خصوصیات Format در #F رسیدیم.

      مثال

      مثال : 

      هنگامی که شما برنامه را کامپایل و اجرا می کنید، خروجی زیر را تولید می کند.

      مثال : 

      تا این جا مبحث Basic I/O در #F رو به پایان می رسونیم و ادامه مباحث رو به جلسه بعدی موکول می نماییم.

      کلام پایانی

      همراهان همیشگی سایت پی وی لرن متشکریم از این که آموزش ها را دنبال می کنید.

      با آموزش زبان برنامه نویسی #F و مبحث Basic I/O در #F در خدمتتون هستیم.

      در این جلسه به بیان خصوصیات Format در #F و ماژول Core.Printf که متدهای مختلفی برای نوشتن و خواندن در کنسول را دارد.

      همراه با مثالی بررسی نمودیم و دیدیم که ما از تابع printf و printfn  برای نوشتن در کنسول استفاده می کنیم.

      امیدوارم از آموزش استفاده لازم رو برده باشین.

      در جلسه دوم مبحث Basic I/O در #F به روش های مختلف خواندن از کنسول و نوشتن به کنسول در #F را نشان می دهیم. با ما همراه باشید.

      QR:  جلسه ۲۴-۰۱ : Basic I/O در #F
      به اشتراک بگذارید