# Bu bir satırlık yorum
=begin
Bu bir
çok satırlı yorum
=end
puts "Merhaba, Dünya!"
integer = 42
float = 3.14
single_quoted = 'Merhaba'
double_quoted = "Dünya"
interpolation = "#{single_quoted}, #{double_quoted}!"
symbol = :benim_sembol
true_val = true
false_val = false
array = [1, 2, 3, 4, 5]
hash = { "anahtar" => "değer", :sembol_anahtar => "başka değer" }
# Yerel değişken
local_var = "Ben yerelim"
# Örnek değişkeni
@instance_var = "Ben bir örnek değişkeniyim"
# Sınıf değişkeni
@@class_var = "Ben bir sınıf değişkeniyim"
# Global değişken
$global_var = "Ben globalim"
# Sabitler
CONSTANT = "Ben bir sabitim"
a, b = 10, 3
puts a + b # Toplama: 13
puts a - b # Çıkarma: 7
puts a * b # Çarpma: 30
puts a / b # Bölme: 3
puts a % b # Modül: 1
puts a ** b # Üs Alma: 1000
x, y = 5, 10
puts x == y # Eşit: false
puts x != y # Eşit değil: true
puts x > y # Büyük: false
puts x < y # Küçük: true
puts x >= y # Büyük veya eşit: false
puts x <= y # Küçük veya eşit: true
a, b = true, false
puts a && b # Mantıksal VE: false
puts a || b # Mantıksal VEYA: true
puts !a # Mantıksal DEĞİL: false
x = 10
if x > 0
puts "Pozitif"
elsif x < 0
puts "Negatif"
else
puts "Sıfır"
end
# Tek satırlık if ifadesi
puts "Pozitif" if x > 0
grade = 'B'
case grade
when 'A'
puts "Harika!"
when 'B'
puts "İyi iş!"
when 'C'
puts "Geçtiniz."
else
puts "Daha çok çalışmalısınız."
end
# While döngüsü
i = 0
while i < 5
puts i
i += 1
end
# For döngüsü
for i in 0..4
puts i
end
# Each döngüsü
(0..4).each do |i|
puts i
end
# Times döngüsü
5.times { |i| puts i }
# Metod tanımı
def greet(name)
"Merhaba, #{name}!"
end
# Metod çağrısı
puts greet("Alice")
# Varsayılan argümanlı metod
def power(base, exponent = 2)
base ** exponent
end
puts power(3) # 9
puts power(3, 3) # 27
# Değişken sayıda argüman
def sum(*numbers)
numbers.inject(0, :+)
end
puts sum(1, 2, 3, 4, 5) # 15
fruits = ["elma", "muz", "kiraz"]
puts fruits[0] # elma
fruits << "hurma" # Sona ekle
fruits.push("karadut") # Başka bir şekilde sona ekle
fruits.unshift("kayısı") # Başa ekle
puts fruits.length # 6
puts fruits.include?("muz") # true
fruits.each { |fruit| puts fruit }
person = { "isim" => "John", "yaş" => 30, "şehir" => "New York" }
puts person["isim"] # John
person[:meslek] = "Mühendis" # Yeni anahtar-değer çifti ekleme
person.each do |key, value|
puts "#{key}: #{value}"
end
# Sembol anahtarlar (Ruby'de yaygındır)
options = { font: "Arial", size: 12, color: "mavi" }
puts options[:font] # Arial
class Car
attr_accessor :brand, :model
def initialize(brand, model)
@brand = brand
@model = model
end
def start
puts "The #{brand} #{model} is starting..."
end
end
# Bir nesne oluşturma
my_car = Car.new("Toyota", "Corolla")
my_car.start
class ElectricCar < Car
attr_accessor :battery_capacity
def initialize(brand, model, battery_capacity)
super(brand, model)
@battery_capacity = battery_capacity
end
def start
puts "The #{brand} #{model} is starting silently..."
end
end
module Drivable
def drive
puts "Araç hareket ediyor"
end
end
class Car
include Drivable
end
my_car = Car.new
my_car.drive # Araç hareket ediyor
# Blok
[1, 2, 3].each { |num| puts num }
# Çok satırlı blok
[1, 2, 3].each do |num|
puts num
end
# Proc
square = Proc.new { |x| x ** 2 }
puts square.call(5) # 25
# Lambda
cube = ->(x) { x ** 3 }
puts cube.call(3) # 27
begin
# İstisna oluşturabilecek kod
result = 10 / 0
rescue ZeroDivisionError => e
puts "Sıfıra bölünemez: #{e.message}"
rescue StandardError => e
puts "Bir hata oluştu: #{e.message}"
else
puts "Hata oluşmadı"
ensure
puts "Bu blok her zaman çalışır"
end
# Dosya okuma
File.open('dosya.txt', 'r') do |file|
file.each_line { |line| puts line }
end
# Dosya yazma
File.open('dosya.txt', 'w') do |file|
file.puts "Yeni bir satır"
end
# Gemfile
source "https://rubygems.org"
gem "rails", "~> 6.1"
gem "pg", "~> 1.2"
# Bundler'ı yükleme ve bağımlılıkları kurma
# terminal
bundle install
class DynamicMethod
define_method(:greet) do |name|
"Merhaba, #{name}!"
end
end
obj = DynamicMethod.new
puts obj.greet("Alice") # Merhaba, Alice!
2024 © Tüm hakları saklıdır - buraxta.com