Сплат-оператор в Ruby
Одна из самых крутых вещей в Ruby - это сплат-оператор (*). Если вкратце, он позволяет деструктуризировать массив в переменные, например: ``` a, * = *[123] puts a.inspect # 123 ```
Этот код можно упростить еще, просто убрав звездочки: ``` a, = [123] puts a.inspect # 123 ```
Если вам нужно получить только конец массива, то звездочка в начале обязательна: ``` *, b = [123, 321] puts b.inspect # 321 ```
Но ее можно заменить на подчеркивание: ``` _, b = [123, 321] puts b.inspect # 321 ```
Одно из основных применений этого оператора заключается в том, что вы можете получить начало и конец массива одним выражением (конечно, только если он состоит из двух и более элементов): ``` a, *, c = [1, 2] puts a.inspect # 1 puts c.inspect # 2 a, *, c = [1, 2, 3, 4] puts a.inspect # 1 puts c.inspect # 4 ```
И самое крутое и мое любимое применение заключается в том, что с его помощью можно легко объединить несколько массивов в один: ``` a = [1, 2, 3, 4] b = [5, 6, 7, 8] c = [*a, *b] puts c.inspect # [1, 2, 3, 4, 5, 6, 7, 8] ```
Использовали ли вы сплат-оператор в своем коде? Расскажите о его применении в ваших проектах.