Video: Ruby on Rails by Leila Hofer 2025
Ruby, programınızın bir kısmında bir yazım hatası olduğunda veya beklenmeyen bir şeyler olduğunda yardımcı olmaya çalışmaktadır. Ruby, genellikle kodunuzda sorunun nerede bulunduğu hakkında bir bilgi içeren bir uyarı veya hata mesajı görüntüler.
Örneğin, yanlışlıkla bazı basit matematik yaparken bir yazım hatası yapmışsanız, Ruby size bir sözdizimi hatası olduğunu söyleyecektir.
Sözdizimi, İngilizce dilbilgisi gibidir. Bir programlama dilinin sözdizimi, komutların ve deyimlerin o dildeki yapı, düzen ve yazımdır.
Kasıtlı bir imla hatası yaparsanız:
2. 2. 2: 036> 3j + 3 SyntaxError: (irb): 36: sözdizimi hatası, beklenmedik TIDENTIFIER, / usr / bin / irb: 11'den gelen 3j + 3 ^ girdisinin bitmesini bekliyordu:N'-
3 harfinden sonra j harfini yazmak istemediniz ve okulda cebir öğrenirken yazabileceğinizden farklı olarak bu sözdizimi geçerli Ruby değildir.
Ruby biraz şifreli bir hata mesajı görüntüler ancak sözdizimi hatası ve satır numarası veya yerini görürseniz, size neyin yanlış gittiğini araştırmaya başlamanız için bir yer verir. Bu durumda, Ruby hatalı hattı, hatalı olduğunu düşündüğü noktayı gösteren küçük bir ok simgesi ile yardımcı bir şekilde görüntüledi. Teşekkür ederim, Ruby!
Bir googolplex görüntülemek için Ruby'yi almaya çalıştığınızda ne olur? A googol , 10'un 100'üncü güce yükseltildiği anlamına gelen eğlenceli bir terimdir. googolplex 1, googol (10 100 ) sıfır izledi. Tahminen, Amerikalı matematikçisi Edward Kasner'in 9 yaşındaki yeğeni Milton Sirotta terimi hazırladı ve bunu "bir" rakam olarak tanımladı ve ardından yorulana kadar sıfır yazdı. " İnteraktif Ruby'de (IRB) googol adlı googolü googol olarak kaydedin:
2. 2. 2: 030> googol = 10 ** 100 => 1000000000000000000000000000000000000000000000000000000000000000000000000000000Şimdi googol ile 10'u yükseltmeyi deneyin:
2. 2. 2: 031> 10 ** googol (irb): 31: uyarı: a ** b, b çok büyük olabilir => Sonsuzluk
Ruby'nin matematik becerilerine bazı sınırlar vardır. Burada, Ruby size yazmış olduğunuz komutun çalışmadığına dair bir uyarı gösteriyor; çünkü hesaplamanın bir kısmı çok büyük. Sonuçları Infinity olarak gösterir, ki bu doğru gözüküyor.
Bakın Ruby başka bir sorun bulabilir mi:
2. 2. 2: 037> x + 5 NameError: tanımsız yerel değişken veya yöntem ' X '; main için: (irb) 'den nesne: 37 / usr / bin / irb: 11: in'
N'-Bu durumda, içinde hiçbir şey saklamadığınız bir değişkeni kullanmaya çalıştınız. Ruby, burada ne yapılacağını bilmiyor, çünkü x adlı bir değişkeni bulamıyor (henüz).Bir değişkenin (veya yöntemin adı) yazım hatası yaparsanız, sıklıkla bu hatayı görürsünüz. Yazım denetimi yapın ve tekrar deneyin.
Bu kodda başka bir yaygın Ruby hatası görülebilir:
2. 2. 2: 038> x = nil => nil 2. 2. 2: 039> x + 5 NoMethodError: undefined method & apos; + N'- nil için: NilClass (irb): 39'dan / usr / bin / irb: 11: in '
N'-nil'i Ruby'nin "hiçbir şeyi" temsil etmenin yolu olarak düşünebilirsiniz. "Ruby'nin gösterdiği hata, nil ile nasıl ekleme yapacağını bilmediği anlamına gelir; bu makul görünüyor. Kodunuzda, bu muhtemelen programın başka bir bölümünden alınan sonuçları beklediğiniz anlamına gelir, ancak kod hiçbir şey döndürmedi.
Bazen gördüğünüz son bir sorun, uyumsuz verilerle bir şeyler yapmaya çalışmanızdır:
2. 2. 2: 040> x = "a" => "a" 2. 2. 2: 041> x + 5 TypeError: Fixnum'un (irb) dizesindeki örtük dönüştürme yok: 41: inç & + N'- from (irb): 41 from / usr / bin / irb: 11: in '
N'-Harf a değişken x olarak atanır. Burada olsa da, 5 harfini a harfine eklemeye çalıştınız. Açıkçası bu saçmalık. Ruby de öyle düşünür ve veriyi işe yarayacak şekilde dönüştürülemediğini söyler.
Yazım hatalarına en sıklıkla girersiniz, çünkü yazım hataları yapmak için en kolay hata. Bir hata mesajı gördüğünüzde, en iyi yol, projenizin koduyla yazdıklarınızı dikkatlice karşılaştırmaktır.