Swift မှာ ပေါင်းနှုတ် မြှောက်စား operator တွေကို overloading လုပ်ပြီး ရေးလို့ရပါတယ်။ ဥပမာ struct နှစ် ခု ပေါင်းမယ် ဆိုရင် သမာရိုးကျ ပေါင်းလို့ မရပါဘူး။ ဒါပေမယ့် operator overloading ကြောင့် ပေါင်းလို့ ရအောင် ထပ်ဖြည့်ပြီးရေးလို့ရပါတယ်။
struct Money { let value: Int let currencyCode: String
static func + (left: Money, right: Money) -> Money { return Money(value: left.value + right.value,currencyCode: left.currencyCode) }}
//Money(value: 30, currencyCode: "USD")print(Money(value: 10, currencyCode: "USD") + Money(value: 20, currencyCode: "USD"))
Operator Overloading မှာ prefix, postfix , infix ဆိုပြီး ရှိပါတယ်။ + ကတော့ infix ပါ။ prefix, postfix တွေ အတွက် func မတိုင်ခင်မှာ prefix လား postfix လားဆိုပြီး ကြေငြာပေးဖို့ လိုပါတယ်။
import Foundation
struct Money { let value: Int let currencyCode: String
static func + (left: Money, right: Money) -> Money { return Money(value: left.value + right.value,currencyCode: left.currencyCode) }
static postfix func ++ (money: Money) -> Money { return Money(value: money.value + 1, currencyCode: money.currencyCode) }
static prefix func ++ (money: Money) -> Money { return Money(value: money.value + 1, currencyCode: money.currencyCode) }}
print(Money(value: 10, currencyCode: "USD") + Money(value: 20, currencyCode: "USD")) //infixprint(Money(value: 10, currencyCode: "USD")++) //postfixprint(++Money(value: 10, currencyCode: "USD")) //prefix