Menu
Coddy logo textTech

do..end ve Süslü Parantezler

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 16 / 56.

Ruby size bir blok yazmanın iki yolunu sunar. Aynı anlama gelirler, ancak her birinin tercih edilen bir kullanım durumu vardır.

do...end çok satırlı bloklar içindir:

[1, 2, 3].each do |n|
  doubled = n * 2
  puts "#{n} -> #{doubled}"
end

Süslü parantezler { ... }, kısa ve ifade biçimli tek satırlık bloklar içindir:

[1, 2, 3].each { |n| puts n * 2 }

İkisinin öncelikleri biraz farklıdır, ancak öğrenenlerin ihtiyaç duyduğu kural stil kuralıdır: tek satırlıklar için süslü parantezler, çok satırlılar için do...end.

Her iki form da bir değer döndürebilir. Bloğun son ifadesi, map gibi metotlara geri döndürülen değerdir:

[1, 2, 3].map { |n| n * 10 }    # [10, 20, 30]
[1, 2, 3].map do |n|
  n * 10
end                              # [10, 20, 30]
challenge icon

Görev

Kolay

Girdiden virgülle ayrılmış bir tam sayı listesi okuyun. İki satır yazdırın:

  1. Her sayının iki katı, , ile birleştirilmiş. map metodunun süslü parantez (brace) formunu kullanın.
  2. Her sayı için her satıra bir tane gelecek şekilde "<n> squared is <n*n>" dizesi. each metodunun do...end formunu kullanın.

1,2,3 girdisi için çıktı şöyledir:

2, 4, 6
1 squared is 1
2 squared is 4
3 squared is 9

Kopya kağıdı

Ruby bloklarının iki sözdizimi vardır:

Tek satırlık bloklar için Süslü parantezler { ... }:

[1, 2, 3].map { |n| n * 2 }  # [2, 4, 6]

Çok satırlık bloklar için do...end:

[1, 2, 3].each do |n|
  doubled = n * 2
  puts "#{n} -> #{doubled}"
end

Her iki form da bloğun son ifadesini döndürür (map gibi metotlar tarafından kullanılır).

Kendin dene

numbers = gets.chomp.split(",").map(&:to_i)

# TODO: satır 1, iki katına çıkarılmış, map'in süslü parantez (brace) formu, ", " ile birleştirilmiş
# TODO: 2..n satırları, kareleri, each'in do...end formu
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler