Fsharp Overloading Fsharp Overloading Fsharp Overloading
عملگر Overloading در #F
شما می توانید بسیاری از اپراتورهای داخلی موجود در# F را دوباره تعریف و یا بیش از حد بارگذاری یا Overloading کنید. بنابراین برنامه نویس می تواند اپراتورها یا عملگرها را با نوع تعریف کاربر نیز استفاده کند.
اپراتورها با نام خاصی عمل می کنند که درون براکت قرار دارند. آن ها باید به عنوان اعضای کلاس ایستا تعریف شوند.
مانند هر عملکرد دیگر، اپراتور overloaded نوع return و یک parameter list دارد.
مثال زیر، اپراتور + را بر روی اعداد پیچیده نشان می دهد.
1 2 3 | //overloading + operator static member (+) (a : Complex, b: Complex) = Complex(a.x + b.x, a.y + b.y) |
تابع فوق عملگر اضافه (+) را برای یک کلاس Complex تعریف شده توسط کاربر اجرا می کند. این خصیصه های دو آبجکت را اضافه می کند و آبجکت Complex را به دست می آورد.
اجرای عملگر Overloading در #F
برنامه زیر نشان دهنده اجرای کامل است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | //implementing a complex class with +, and - operators //overloaded type Complex(x: float, y : float) = member this.x = x member this.y = y //overloading + operator static member (+) (a : Complex, b: Complex) = Complex(a.x + b.x, a.y + b.y) //overloading - operator static member (-) (a : Complex, b: Complex) = Complex(a.x - b.x, a.y - b.y) // overriding the ToString method override this.ToString() = this.x.ToString() + " " + this.y.ToString() //Creating two complex numbers let c1 = Complex(7.0, 5.0) let c2 = Complex(4.2, 3.1) // addition and subtraction using the //overloaded operators let c3 = c1 + c2 let c4 = c1 - c2 //printing the complex numbers printfn "%s" (c1.ToString()) printfn "%s" (c2.ToString()) printfn "%s" (c3.ToString()) printfn "%s" (c4.ToString()) |
خروجی
1 2 3 4 | 7 5 4.2 3.1 11.2 8.1 2.8 1.9 |
شما می توانید بسیاری از اپراتورهای داخلی موجود در# F را دوباره تعریف و یا بیش از حد بارگذاری یا Overloading کنید. بنابراین برنامه نویس می تواند اپراتورها یا عملگرها را با نوع تعریف کاربر نیز استفاده کند.اپراتورها با نام خاصی عمل می کنند که درون براکت قرار دارند. آن ها باید به عنوان اعضای کلاس ایستا تعریف شوند.مانند هر عملکرد دیگر، اپراتور overloaded نوع return و یک parameter list دارد.مثال زیر، اپراتور + را بر روی اعداد پیچیده نشان می دهد.شما می توانید بسیاری از اپراتورهای داخلی موجود در# F را دوباره تعریف و یا بیش از حد بارگذاری یا Overloading کنید. بنابراین برنامه نویس می تواند اپراتورها یا عملگرها را با نوع تعریف کاربر نیز استفاده کند.اپراتورها با نام خاصی عمل می کنند که درون براکت قرار دارند. آن ها باید به عنوان اعضای کلاس ایستا تعریف شوند.مانند هر عملکرد دیگر، اپراتور overloaded نوع return و یک parameter list دارد.مثال زیر، اپراتور + را بر روی اعداد پیچیده نشان می دهد.