مشکل در تعریف getter ?

پرسیده شده
فعالیت 935 روز پیش
دیده شده 440 بار
0

چرا خروجی متد getter حتما باید هم نوع فیلد باشه؟مثلا داخل کلاس یک فیلد price داریم از نوع int ، حالا میخوام نوع خروجی getter از نوع string باشه.وقتی خروجی رو string تعریف میکنم ایراد میگیره که خروجی باید از نوع int باشه

  set price(int value)=>_price = value;
 String get price=>"ریال ${_price}";
فایل پیوست

Ali Rah
Ali Rah

9 مهر 00

0
حذف شده

سلام مجدد

میتونید رشته دریافت کنید و در متد به عدد تبدیل کنید

void main() {
  Product product = Product(150000);
  print(product.price);
  product.price = '200000';
  print(product.price);
}

class Product {
  int _price;
  Product(this._price);
  String get price => '${this._price} تومان';
  set price(String value) => _price = int.parse(value);
}
فایل پیوست

حذف شده
اگه بخوایم با Integer مقدار price رو ست کنیم چی؟
Ali Rah

10 مهر 00

حذف شده
میتونید از getter و setter به صورت دیگه ای استفاده کنید که فقط توی syntax با هم فرق میکنن و کد جدید براتون گذاشته شد
0
حذف شده

سلام وقت بخیر

هیچ محدودیتی توی تعریف نوع خروجی متد وجود نداره یعنی field میتونه از نوع int باشه اما نوع متد خروجی از نوع String

void main(){
    Product product = Product(100000);
    print(product.price);
}
class Product{
    int _price;
    Product(this._price);
    String get price => '${this._price} تومان';
}
فایل پیوست

حذف شده
اگه بخوایم setter هم براش تعریف کنیم چی؟
Ali Rah

9 مهر 00

0
حذف شده
void main() {
  Product product = Product(150000);
  print(product.getPrice());
  product.setPrice(200000);
  print(product.getPrice());
}

class Product {
  int _price;
  Product(this._price);
  String getPrice(){
    return '${this._price} تومان';
  }
  void setPrice(int value){
    _price=value;
  }
}
فایل پیوست

حذف شده
یعنی نمیشه اینجا از setter ,getter پیش فرض دارت استفاده کرد؟فکر اینجارو نکردن؟!
Ali Rah

11 مهر 00