UPDATE: The consensus seems to be overwhelmingly in favour of the match variant. And not to worry, I have replaced the magic numbers with an enum. Will try to remember to merge the branch tomorrow

Does an if-statement block or a switch statement fit better here? For context (and advertisement), this is part of my all-purpose utility plugin ( Codeberg link)

The code:

		# Method 1 (Yandere Dev Technique)  
		if self.throw_errors and status==MpupTest.TESTSTATUS.ERROR:  
			push_error(result)  
		if self.throw_warnings and status==MpupTest.TESTSTATUS.WARNING:  
			push_warning(result)  
		
		# Method 2 (Pirate Software Technique)  
		match status:  
			MpupTest.TESTSTATUS.ERROR:  
				if self.throw_errors:  
					push_error(result)  
			MpupTest.TESTSTATUS.WARNING:  
				if self.throw_warnings:  
					push_warning(result)  
    • Holla@feddit.org
      link
      fedilink
      arrow-up
      1
      ·
      1 month ago

      Imo result is more descriptive than even Java-esque variable names, because it tells you that this is the variable that will actually be returned, rather than just some intermediate representation

        • Holla@feddit.org
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          1 month ago

          Yea, basically. Like, the users shouldn’t have to look at your implementation to find that out what it will return. My example here would be Square.area(). Maybe they would have to look at the method’s docs though to find out what unit the result is in