سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. مبحث Basic I/O در #F رو در سه جلسه خواهیم داشت در این جلسه به بیان خصوصیات Format در #F و ماژول Core.Printf همراه با مثالی می پردازیم. با ما همراه باشید.
Basic Input Output شامل :
ما از تابع printf و printfn برای نوشتن در کنسول استفاده می کنیم.
در این قسمت به جزئیات ماژول printf در #F نگاهی داریم. جدا از تابع بالا ماژول Core.printf در اف شارپ متدهای متغیر دیگری برای printig و formatting با استفاده از نشانه ی % به عنوان placeholders دارد.
جدول خلاصه توضیحات در مورد متد های نشان داد شده را دنبال کنید
Value | Description |
---|---|
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 برای فرمت ورودی و خروجی استفاده می شوند. با توجه به نیاز برنامه نویسان.
این ها رشته هایی با نشانه ی % که مشخص کننده فرمت placeholders هستند می باشند.
سینتکس فرمت placeholders در زیر آمده است. (خصوصیات Format در #F)
1 | %[flags][width][.precision][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 عدد صحیح را با حداقل فضاهای ۵ کاراکتری چاپ می کند.
مقدار | توضیحات |
---|---|
۰ | اضافه کردن صفر به جای اسپیس برای ایجاد پهنای مورد نیاز را تعیین می کند.
|
– | برای left-justify نتایج با پهنای مشخص شده را مشخص می کند.
|
+ | مشخص می کند که یک کاراکتر + اضافه شود اگر عدد مثبت باشد (برای مطابقت یک علامت – برای اعداد منفی). |
‘ ‘ (space) | مشخص می کند اضافه کردن فضای اضافی اگر عدد مثبت است (برای مطابقت یک علامت – برای اعداد منفی). |
# | بی اعتبار. |
خب تا این جا از مبحث Basic I/O در #F به خصوصیات Format در #F رسیدیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | printf "Hello " printf "World" printfn "" printfn "Hello " printfn "World" printf "Hi, I'm %s and I'm a %s" "Rohit" "Medical Student" printfn "d: %f" 212.098f printfn "e: %f" 504.768f printfn "x: %g" 212.098f printfn "y: %g" 504.768f printfn "x: %e" 212.098f printfn "y: %e" 504.768f printfn "True: %b" true |
هنگامی که شما برنامه را کامپایل و اجرا می کنید، خروجی زیر را تولید می کند.
1 2 3 4 5 6 7 8 9 10 | Hello World Hello World Hi, I'm Rohit and I'm a Medical Studentd: 212.098000 e: 504.768000 x: 212.098 y: 504.768 x: 2.120980e+002 y: 5.047680e+002 True: true |
تا این جا مبحث Basic I/O در #F رو به پایان می رسونیم و ادامه مباحث رو به جلسه بعدی موکول می نماییم.
همراهان همیشگی سایت پی وی لرن متشکریم از این که آموزش ها را دنبال می کنید.
با آموزش زبان برنامه نویسی #F و مبحث Basic I/O در #F در خدمتتون هستیم.
در این جلسه به بیان خصوصیات Format در #F و ماژول Core.Printf که متدهای مختلفی برای نوشتن و خواندن در کنسول را دارد.
همراه با مثالی بررسی نمودیم و دیدیم که ما از تابع printf و printfn برای نوشتن در کنسول استفاده می کنیم.
امیدوارم از آموزش استفاده لازم رو برده باشین.
در جلسه دوم مبحث Basic I/O در #F به روش های مختلف خواندن از کنسول و نوشتن به کنسول در #F را نشان می دهیم. با ما همراه باشید.