Как скопировать не более n элементов коллекции в Smalltalk?
Существует ли элегантная однострочная копия не более n элементов в коллекции?
Я нахожу написание следующего громоздкого:
limit := collection size min: n.
copy := collection copyTo: limit
Есть ли лучший способ?
Edit-а также немного более сложная задача: скопировать не более последних N элементов
3 ответа:
Существуют также потоковые сообщения:
'foobar' readStream next: 3. 'foobar' readStream next: 10.
В использовании Squeak / Pharo
next:
он автоматически усекается, когда не так много элементов доступно, как требуется.В других диалектах, таких как VW и Dolphin, используйте более явный
nextAvailable:
, чтобы избежать ошибки.