I found that the expression [*1..4] returns the same as if I would do a (1..4).to_a, but I don't understand the syntax here. My understanding is that * is - being a unary operator in this case - to be the splat operator, and to the right of it, we have a Range. However, if just write the expression *1..4, this is a syntax error, and *(1..4) is a syntax error too. Why does the first [*1..4] work and how it is understood in detail?
How is the splat operator understood when applied to a range expression?
128 Views Asked by user1934428 At
1
There are 1 best solutions below
Related Questions in RUBY
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- Duplicate GET requests - Rails & Heroku
- convert csv file with json data inside to a column, rows table in 2nd csv file
- Installing dependencies from a gemspec file
- Verifying Google Identity OAuth2 token with Ruby
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- How to fix error in model with gem lockbox
- Cannot install Ruby Gem on Window
- use logstash filter ,aes gcm encrypted in ruby,but cannot decrypted in java
- In Rails 7, what is the right ActiveRecord callback to use if I need to prevent (or rollback) persistance on error?
- How can I go through an array and still remove elements from it
- Nokogiri only returning 5 results
- How do I get the fullscreen mode in firefox?
- undefined group option when using branch reset group regex in Ruby
Related Questions in SPLAT
- Instance of ViewModel is created every time, when using MediatR Publish and Splat in an Avalonia Project
- In Julia how to deal neatly with Zero Dimensions and Iterators
- Sending Params Correctly without Interpolation with Splat
- How does generator * / splat unpacking work?
- How can I splat/unpack/apply an array of arguments into a function?
- Using Splat in Invoke-Command AND passing arguments relevant to the machine
- Idiomatic way to receive an object or array of objects, transform them, and add to existing array
- ReactiveUi: How can I replace the default IViewLocator when using AutoFac?
- PHP 8.0.8 / MYSQL ArgumentCountError: The number of elements in the type definition string must match the number of bind variables
- Strange evaluation order using Python's splat (*) in MacBookM1
- Python Creating a function with unkown number arguments with splat operator
- Python splat/unpacking/* operator on sets: is the result always sorted?
- In ReactiveUI, how to call GetService for MutableDependencyResolver
- How to pass array as individual arguments in ruby?
- Ruby hash.dig using array as argument?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The splat
*converts the object to an list of values (usually an argument list) by calling itsto_amethod, so*1..4is equivalent to:On its own, the above isn't valid. But wrapped within square brackets,
[*1..4]becomes:Which is valid.
You could also write
a = *1..4which is equivalent to:Here, the list of values becomes an array due to Ruby's implicit array assignment.