Přejít k navigační liště

Zdroják » Zprávičky » Pozor na logické operátory and a or v Ruby

Pozor na logické operátory and a or v Ruby

Zprávičky Různé

Nálepky:

Jazyk Ruby má, stejně jako jiné jazyky, možnost použít logické operátory OR a AND. V jazycíc typu C se tyto operátory zapisují pomocí || nebo &&, v jiných jako or a and. V Ruby můžete použít oba tvary, což začátečníky svádí k tomu, že je volně zaměňují, což není zcela v pořádku. Mezi slovní a symbolickou variantou jsou totiž drobné rozdíly. Zaměřuje se na ně článek Using „and“ and „or“ in Ruby.

Zdroj: Virtuous Code

Komentáře

Odebírat
Upozornit na
guest
3 Komentářů
Nejstarší
Nejnovější Most Voted
v6ak

Vypadá to jen na rozdílnou prioritu. Píší tam, že to pochází z Perlu, což by asi vysvětlovalo, že je to podobně i v PHP.

kamk

Pro logické „a, anebo“ se používá and, or:
if (has_cars or has_trucks) and has_parking

Naproti tomu && a || pracují jako binární and, or, t.j. hodí na přiřazování:
places = parking_avail && (trucks_places || cars_places)
Zde je u Ruby pěkný přiřazení hodnoty pokud je proměna prázdná (nil):
x ||= 10
(což je ve zkratce: x = x || 10)

leumas

Aj ked sa o tejto ficure velmi nevie a niektore blbsie kompilatory ju nepodporuju.

TypeScript 7 v Go: rychlejší buildy, chybějící API

Betaverze TypeScriptu 7.0 ukazuje víc než rychlejší tsc. Microsoft převádí kompilátor a jazykovou službu z původní kódové základny psané v TypeScriptu a běžící jako JavaScript do Go, přidává paralelní typovou kontrolu a připravuje novou editorovou část postavenou na LSP. Pro část nástrojů ale nepůjde o prostou výměnu binárky: TypeScript 7 zatím nemá stabilní náhradu dnešního Compiler API.

Prolog nezmizel. Jen dnes žije v jiných nástrojích

Prolog nezmizel. Jeho hlavní myšlenku dnes potkáváme v nástrojích, které se Prologu na první pohled nepodobají: v CodeQL pro analýzu kódu, v Rego pro policy-as-code, v Z3 pro práci s omezeními a v Leanu pro formální důkazy. Každý řeší jiný problém, ale všechny připomínají totéž: někdy je lepší popsat vztahy, pravidla, omezení nebo tvrzení než vrstvit další if.