O singură linie de declarație if în Ruby (Programare, Ruby, Declarație If, Ramură)

dimitryeurope a intrebat.

Am următoarea bucată de cod:

if day > 31 
  day -= 31 
  month = "April"
end

Pot să o scriu într-o singură linie diferită de:

if day > 31 then day -= 31 and month = "April" end

?

Am încercat în felul următor:

if day > 31 {day -= 31; month = "April"} 

Dar nu funcționează

Comentarii

  • if day > 31 then day -= 31; month = „April” end –  > Por ymonad.
  • Separatorul de expresii este ; nu and. and este un operator boolean. Ce te-a făcut să crezi că este un separator de expresii? –  > Por Jörg W Mittag.
  • You poate să îl puneți pe o singură linie, dar rezultă un cod mai puțin lizibil. Nu va rula mai repede, așa că de ce să o faceți dacă face codul mai greu de înțeles? Dacă m-aș întâlni cu așa ceva într-o revizuire de cod, ar fi o prelegere despre scrierea de cod sustenabil și o schimbare instantanee a codului. –  > Por Omul de tinichea.
  • În acest caz specific, obiectivul a fost să scriu un cod cât mai strâns posibil. Eu doar exploram…  > Por dimitryeurope.
1 răspunsuri
shivam
(day -= 31; month = "April") if day > 31

Mod alternativ (Așa cum a sugerat @mudasobwa în comentariile de mai jos) :

day, month = day - 31, "April" if day > 31

Comentarii

  • practic da. În ruby o linie dacă declarația if este statement if condition –  > Por shivam.
  • Sau, fără paranteze: day, month = day - 31, "April" if day > 31. –  > Por Aleksei Matiușkin.
  • @mudasobwa +1 pentru asta. De fapt, am încercat să o fac prima dată, dar undeva am greșit. Mulțumesc pentru exemplu 🙂 –  > Por shivam.