Vraag Waarom scala.collection.immutable.Stack gebruiken


Ik heb iets nodig om een ​​LIFO op te slaan. Je hebt geen verplaatsingen en andere functies nodig, behalve push en pop.

Ik heb speciale klasse gevonden in scala verzameling voor het maken van een stapel. Maar het ontbreekt aan nul object in het matchen van patronen en andere handige scala idioom. Onveranderlijke lijsten passen goed op het eerste gezicht, ze hebben cons voor constructie en voor extractie en dat is allemaal nodig van LIFO.

Is er een reden achter scala.collection.immutable.Stack existence? Waarom zou ik het liever gebruiken, wat zijn use cases om de voordelen te laten zien?


11
2018-06-08 00:27


oorsprong


antwoorden:


Van de API-documentatie:

Notitie: Deze klasse bestaat alleen om historische redenen en als een analoog   van veranderlijke stapels. In plaats van een onveranderlijke stapel kunt u gewoon een   lijst.

En in een beetje meer detail:

Onveranderlijke stapels worden zelden gebruikt in Scala-programma's omdat hun   functionaliteit wordt onderverdeeld in lijsten: A push op een onveranderlijke stapel is   hetzelfde als een :: op een lijst en een pop op een stapel is hetzelfde als een tail op   een lijst.

Dus om uw vragen te beantwoorden:

  1. Ja, er is een reden voor zijn bestaan.
  2. Nee, je moet het niet verkiezen boven lijsten.

19
2018-06-08 00:37