آرمان
آرمان
خواندن ۲ دقیقه·۵ سال پیش

مقدمات زبان F# عملگرها (قسمت چهارم)

عملگرها نمادهایی هستند که یک کار خاص را انجام میدهند. عملگرها در F# به دو نوع پیشوندی (Prefix) و میانوندی (Infix) تقسیم میشوند.

  • عملگرهای پیشوندی به عملگرهایی گفته میشوند که دارای یک یا تعداد بیشتری عملوند هستند و از اولویت نسبت به عملوندها بر خوردارند. مانند "x-"
  • عملگرهای میانوندی به عملگرهایی گفته میشوند که دارای 2 عملوند هستند و به لحاظ مکانی در بین عملوند ها قرار میگیرند. مانند "x+y"

در F# می توانید عملگر ها را Overload (سربارگذاری) کرد و بسته به نیاز خود گسترش داد یا حتی عملگرهای جدید ایجاد کرد (بعدا در این مورد صحبت خواهیم کرد)

انواع عملگرها

  • عملگرهای محاسباتی
  • عملگرهای منطقی
  • عملگرهای بیتی
  • عملگرهای مقایسه ای (رابطه ای)
  • عملگرهای nullable


عملگرهای محاسباتی

مثل بقیه زبان ها با این تفاوت که عملگر توان ** می باشد و نه ^

عملگر ها و استنتاج خودکار
عملگر ها و استنتاج خودکار


عملگرهای منطقی

بر خلاف شی شارپ ! علامت not یا نقیض است در اف شارپ از کلمه not استفاده میشود.

عملگرهای بیتی


عملگر های مقایسه ای (رابطه ای)

هم چنین عملگر = برخلاف زبان های دیگر که عملیات انتساب است در اف شارپ این عملگر ، عملگر برابری (equality, equals) که یک عملگر جنریک است

در واقع همان عملگر های مقایسه ای برای عملگر ها محاسباتی هستند.


عملگرهای nullable

عملگرهای Nullable عملگرهای محاسباتی باینری یا عملگرهای مقایسه ای هستند که با نوع های محاسباتی nullable از یک یا هر دو طرف کار می کنند.

انواع nullable اغلب هنگام کار با داده هایی از منابع مانند پایگاه داده هایی که اجازه می دهند null ها را به جای مقادیر واقعی کار کنند ، بوجود می آیند.عملگرهای Nullable اغلب در عبارات پرس و جو (query expressions) استفاده می شوند.علاوه بر عملگرهای Nullable برای محاسبات و مقایسه ، از عملگرهای تبدیل (conversion operators) می توان برای تبدیل بین انواع nullable استفاده کرد.نسخه های خاص عملگرهای nullable برخی از عملگرهای نمایش داده شده نیز وجود دارد.


شکل تابعی عملگرها

در f# این امکان وجود دارد با عملگردها مانند تابع رفتار کرد.برای اینکار کافیست عملگر مورد نظر را داخل یک جفت پرانتز قرار می دهیم و عملوندهای آن را به عنوان پارامتر های ورودی به تابع ارسال میکنیم. این تکنین باعث می شود که از عملگرها مانند مقادیر استفاده کرد و به راحتیمی توان آنها را به شناسه دلخواه نسبت داد یا حتی به عنوان پارامتر ورودی به تواع دیگر ارسال کرد.

(+) 6 8

البته ظاهرا ویرایش گر ویرگول ایراد دارد !

عملگرهای مانند + = به دو شکل میانوندی و پیشوندی هستند . برای اینکه به کامپایلر بفهمانم منظور ما شکل پیشوندی است باید قبل از عملگر نماد ~ قرار دهیم:

(~-) -13
int = 13


let add = (+) add 5 6
int = 11

اولیت عملگر ها

عملگرهای پیشوندی یگانی (not - +) بالاتر از عملگرهای میانوندی و اولویت میانوندی هم مانند سایر زبان هاست

operatorsf#
یک برنامه نویس که هرآنچه را که یاد میگیرد در دفترچه یادداشت ویرگولیش یادداشت میکرد(!) حتی یک خط ! تا درصورت نیاز به آن رجوع کند...
شاید از این پست‌ها خوشتان بیاید