Ruby 2.6 is vrij recent uitgebracht en brengt een aantal handigheidjes die de moeite waard kunnen zijn. Wat is er nieuw? Laten we het eens proberen!
1. Eindeloos bereik
Ruby 2.6 introduceert eindeloze bereiken, waardoor uitdrukkingen als:
mogelijk.
2. Matrix
Ruby 2.6 biedt nieuwe methoden en aliassen voor de klasse Array. I.e:
- Array#verschil - werkt als de operator "I", maar accepteert meerdere argumenten.
- Array#union - werkt als de "&" operator, maar accepteert meerdere argumenten.
- Array#filter - nieuwe alias voor Array#select.
3. Hash
Hash#merge en Hash#merge! accepteren nu meerdere argumenten. Niet meer code zoals: hash1.merge(hash2).merge(hash3)!
4. Kernel#dan
Ruby 2.6 biedt methode Kernel#dan, wat een alias is voor Kernel#yield_selfwaardoor we bewerkingen kunnen koppelen in pijplijnen en de code leesbaarder wordt.
5. Nieuwe manier om een hash te maken van de array
Ruby 2.6 biedt Telbaar#to_h methode die een blok accepteert en sleutels aan waarden koppelt!
Laten we kort in herinnering brengen hoe we vóór Ruby 2.6 moesten omgaan met het maken van een hash uit een array:
Vanaf nu is het mogelijk om dit gewoon zo te doen:
Hoe cool is dat!
6. Proc#compose - een beetje Ruby-magie of gewoon een onleesbare puinhoop?
Sinds Ruby 2.6 Proc#>> en Proc#<< methoden toegevoegd, waardoor we twee functies kunnen combineren. Laten we hier eens naar kijken:
Met de #>> bewerking wordt het getal eerst in de exponentiatiefunctie gezet en vervolgens wordt min_twee uitgevoerd op het resultaat van de eerste functieaanroep. Hoewel het nuttig lijkt en ons een beetje magie geeft, waarvoor we allemaal van Ruby houden, zeggen sommigen dat code die op deze manier is geschreven gewoon een onleesbare puinhoop wordt.
Dit zijn, naar mijn mening, de meest interessante gemakken die Ruby 2.6 ons biedt. Ik raad ten zeerste aan om een kijkje te nemen in de officiële changelog ook.
Lees ook:
- Het schrijven van documentatie is eenvoudig geworden dankzij VuePress
- Beveiliging in Javascript-pakketten
- Vue.js basistutorial. Hoe begin je met dit framework?