# Bu bir tek satırlık yorum
=begin
Bu çok
satırlı bir
yorumdur
=end
puts "Merhaba, Dünya!"
tamsayi = 42
ondalikli = 3.14
tek_tirnak = 'Merhaba'
cift_tirnak = "Dünya"
interpolasyon = "#{tek_tirnak}, #{cift_tirnak}!"
sembol = :benim_sembolum
dogru_deger = true
yanlis_deger = false
dizi = [1, 2, 3, 4, 5]
hash = { "anahtar" => "değer", :sembol_anahtar => "başka bir değer" }
# Yerel değişken
yerel_degisken = "Ben yerelim"
# Örnek değişkeni
@ornek_degisken = "Ben bir örnek değişkenim"
# Sınıf değişkeni
@@sinif_degiskeni = "Ben bir sınıf değişkeniyim"
# Global değişken
$global_degisken = "Ben globalim"
# Sabitler
SABIT = "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 alma: 1
puts a ** b # Üs alma: 1000
x, y = 5, 10
puts x == y # Eşittir: false
puts x != y # Eşit değildir: true
puts x > y # Büyüktür: false
puts x < y # Küçüktür: true
puts x >= y # Büyük eşittir: false
puts x <= y # Küçük eşittir: 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
not = 'B'
case not
when 'A'
puts "Mükemmel!"
when 'B'
puts "İyi iş!"
when 'C'
puts "Geçtin."
else
puts "Daha çok çalışman gerekiyor."
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 }
# Metot tanımı
def selamla(isim)
"Merhaba, #{isim}!"
end
# Metot çağrısı
puts selamla("Ali")
# Varsayılan argümanlı metot
def us_al(taban, us = 2)
taban ** us
end
puts us_al(3) # 9
puts us_al(3, 3) # 27
# Değişken sayıda argüman
def toplam(*sayilar)
sayilar.inject(0, :+)
end
puts toplam(1, 2, 3, 4, 5) # 15
meyveler = ["elma", "muz", "kiraz"]
puts meyveler[0] # elma
meyveler << "hurma" # Sona ekleme
meyveler.push("mürver") # Sona eklemenin başka bir yolu
meyveler.unshift("kayısı") # Başa ekleme
puts meyveler.length # 6
puts meyveler.include?("muz") # true
meyveler.each { |meyve| puts meyve }
kisi = { "ad" => "Ahmet", "yaş" => 30, "şehir" => "İstanbul" }
puts kisi["ad"] # Ahmet
kisi[:meslek] = "Mühendis" # Yeni bir anahtar-değer çifti ekleme
kisi.each do |anahtar, deger|
puts "#{anahtar}: #{deger}"
end
# Sembol anahtarlar (Ruby'de yaygın)
secenekler = { yazı_tipi: "Arial", boyut: 12, renk: "mavi" }
puts secenekler[:yazı_tipi] # Arial
class Araba
attr_accessor :marka, :model
def initialize(marka, model)
@marka = marka
@model = model
end
def calistir
puts "#{marka} #{model} çalışıyor..."
end
end
# Nesne oluşturma
benim_arabam = Araba.new("Toyota", "Corolla")
benim_arabam.calistir
class ElektrikliAraba < Araba
attr_accessor :batarya_kapasitesi
def initialize(marka, model, batarya_kapasitesi)
super(marka, model)
@batarya_kapasitesi = batarya_kapasitesi
end
def calistir
puts "#{marka} #{model} sessizce çalışıyor..."
end
end
module Surulebilir
def sur
puts "Araç hareket ediyor"
end
end
class Araba
include Surulebilir
end
benim_arabam = Araba.new
benim_arabam.sur # Araç hareket ediyor
# Blok
[1, 2, 3].each { |sayi| puts sayi }
# Çok satırlı blok
[1, 2, 3].each do |sayi|
puts sayi
end
# Proc
kare = Proc.new { |x| x ** 2 }
puts kare.call(5) # 25
# Lambda
kup = ->(x) { x ** 3 }
puts kup.call(3) # 27
begin
# İstisna oluşturabilecek kod
sonuc = 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 "İstisna oluşmadı"
ensure
puts "Bu her zaman çalışır"
end
# İstisna oluşturma
def yas_kontrol(yas)
raise ArgumentError, "Yaş negatif olamaz" if yas < 0
end
# Dosyaya yazma
File.open("cikti.txt", "w") do |dosya|
dosya.puts "Merhaba, Dünya!"
end
# Dosyadan okuma
File.open("girdi.txt", "r") do |dosya|
dosya.each_line do |satir|
puts satir
end
end
# Tüm dosya içeriğini okuma
icerik = File.read("girdi.txt")
# Gem kurulumu
# gem install rails
# Bundler kullanımı
# Gemfile oluşturun:
# source 'https://rubygems.org'
# gem 'rails'
# Ardından çalıştırın:
# bundle install
# Ruby dosyanızda:
require 'bundler/setup'
require 'rails'
# Metodu dinamik olarak tanımlama
class BenimSinifim
define_method :benim_metodum do |arg|
puts "#{arg} ile çağrıldı"
end
end
nesne = BenimSinifim.new
nesne.benim_metodum("Merhaba") # Merhaba ile çağrıldı
# method_missing
class BenimSinifim
def method_missing(metod_adi, *args)
puts "'#{metod_adi}' metodunu #{args} argümanlarıyla çağırdınız"
end
end
nesne = BenimSinifim.new
nesne.var_olmayan_metod(1, 2, 3) # 'var_olmayan_metod' metodunu [1, 2, 3] argümanlarıyla çağırdınız
2024 © Tüm hakları saklıdır - buraxta.com