1. PHP / Говнокод #23461

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function hasSubscriptionLot(int $lotId) : bool
    {
        foreach ($this->getSubscriptionLotIds() as $subLotId => $quantity) {
            if ($lotId == $subLotId) {
                return true;
            }
       }
    
       return false;
    }

    array_key_exists?.. не, не слышали

    Запостил: gavaez, 28 Октября 2017

    Комментарии (2) RSS

    • >>array_key_exists
      Такие штки удобно встраивать в ЯП.
      сравним с питоной

      from typing import Dict
      
      class PythonRocks:
          @property
          def subscription_log_ids(self) -> Dict[int, int]:
              return {1: 12, 2: 42}
      
          def has_subscription_lot(self, lot_id: int) -> bool:
              return lot_id in self.subscription_log_ids
      
      rocks = PythonRocks()
      print(rocks.has_subscription_lot(1))  # True
      print(rocks.has_subscription_lot(22))  # False


      А еще лучше так
      from typing import Dict
      
      class PythonRocks:
          @property
          def subscription_log_ids(self) -> Dict[int, int]:
              return {1: 12, 2: 42}
      
      rocks = PythonRocks()
      print(2 in rocks.subscription_log_ids)  # Tru
      print(23 in rocks.subscription_log_ids)  # False


      Но всех порвал котлин
      data class KotlinRocks(private val subscriptionLots: Map<Int, Int> = mapOf(1 to 42, 2 to 34)) {
          fun hasSubscriptionLot(lotId: Int) = lotId in subscriptionLots
      }
      
      fun main(args: Array<String>) {
          val kotlinRocks = KotlinRocks()
          println(kotlinRocks.hasSubscriptionLot(1)) // true
          println(kotlinRocks.hasSubscriptionLot(22)) // False
      }


      А еще лучше так
      data class KotlinRocks(val subscriptionLots: Map<Int, Int> = mapOf(1 to 42, 2 to 34)) // ОДНА строчка на весь ваш класс
      
      fun main(args: Array<String>) {
          val kotlinRocks = KotlinRocks()
          println(1 in kotlinRocks.subscriptionLots) // true
          println(22 in kotlinRocks.subscriptionLots) // False
      }
      Ответить
      • > встраивать в ЯП
        Но ведь array_key_exists тоже встроен в язык.
        Ответить

    Добавить комментарий