Created
July 11, 2019 10:19
-
-
Save marcoranieri/b08b627e6ee2de6665e7753152c4af2e to your computer and use it in GitHub Desktop.
ITERATORS & BLOCKS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = ['David Gilmour', 'Roger Waters', 'Richard Wright', 'Nick Mason'] | |
puts musicians.length | |
# CRUD | |
# create | |
musicians << "Eminem" | |
puts musicians.length | |
#read | |
puts musicians[1] | |
#update | |
puts musicians[0] = "50cent" | |
#delete | |
musician.delete_at(2) | |
musician.delete("Roger Waters") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = [ | |
'David Gilmour', | |
'Roger Waters', | |
'Richard Wright', | |
'Nick Mason' | |
] | |
counter = 0 | |
musicians.each do |musician| | |
if musician.start_with?("R") | |
counter += 1 | |
end | |
end | |
# r_musicians = musicians.count do |musician| | |
# # musician[0] == "R" | |
# musician.start_with?("R") | |
# end | |
p r_musicians |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = ['David Gilmour', | |
'Roger Waters', | |
'Richard Wright', | |
'Nick Mason' | |
] | |
musicians.each do |musician| | |
puts "- #{musician}" | |
end | |
musicians.each_with_index do |musician, index| | |
puts "#{index + 1}. #{musician}" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = [ | |
'David Gilmour', | |
'Roger Waters', | |
'Richard Wright', | |
'Nick Mason' | |
] | |
first_names = musicians.map do |musician| | |
#'David Gilmour'.split => ["David", "Gilmour"] | |
musician.split.first | |
end | |
p first_names | |
# upcased_musicians = musicians.map do |musician| | |
# musician.upcase | |
# end | |
## Map behaviour using .EACH | |
# upcased_musicians = [] | |
# musicians.each do |musician| | |
# upcased_musicians << musician.upcase | |
# end | |
# p musicians | |
# p upcased_musicians |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = ['David Gilmour', 'Roger Waters', 'Richard Wright', 'Nick Mason'] | |
range = (1..10) | |
puts (1...10).to_a | |
for index in (0...musicians.length) | |
puts "- #{musicians[index]}" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
musicians = [ | |
'David Gilmour', | |
'Roger Waters', | |
'Richard Wright', | |
'Nick Mason' | |
] | |
r_musicians = musicians.select do |musician| | |
musician.start_with?("R") | |
end | |
p r_musicians | |
# .map [] -> [] same size | |
# .count [] -> Integer | |
# .select [] -> [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def timer | |
start_time = Time.now | |
yield # workload | |
end_time = Time.now | |
"Elapsed time: #{end_time - start_time}" | |
puts "_________" | |
end | |
puts timer do | |
puts "Task 1" | |
sleep(2) | |
puts "Task 1 Done" | |
end | |
puts timer do | |
puts "Task 2" | |
sleep(1) | |
puts "Task 2 Done" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def greet(name) | |
capitalized_name = "#{name.capitalize}" | |
yield(capitalized_name) | |
end | |
j_greet = greet('john') do |name| | |
"Hello, #{name}" | |
end | |
p_greet = greet('paul') do |name| | |
"Ciao, #{name}" | |
end | |
puts j_greet | |
puts p_greet |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment