Сплат-оператор в 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] ```

Использовали ли вы сплат-оператор в своем коде? Расскажите о его применении в ваших проектах.

#Ruby #Asterisk #Splat #Array #Destruct #Concat

Сплат-оператор в Ruby | Сетка — социальная сеть от hh.ru