Yazdigim sira size ters gelebilir ama inanin kurs da aynen bu sekilde ilerliyor. Once testler, ardindan alistirmalar simdi arastirma evresinde ise temel kavramlar.
Kursun icinde kelimesi bile edilmedi temel kavramlarin ama bu konuyu anlamadan ilerlemem mumkun olmadigi icin kitaplar internet vs ile arastirmalara daldim.
En basinda da belirttigim gibi bu konu bir cok baska altbaslikla birlikte Ruby'i ele aliyor. Yani kursun adi Ruby olsa da derslerde nadiren adini duyuyoruz.
Ben bu yazida sadece Ruby'deki temel kavramlardan string uzerine egilecegim.
%q tek tirnak manasina geliyor %Q ise cift tirnak
END_OF_TEXT metninin manasi yok siz ne isterseniz onu yazabiliyorsunuz.
size bir programci olarak "abc" * 5 desem hemen bir error cikacagini dusunursunuz degil mi ? ama degil. sonuc : "abcabcabcabcabc"
Stringleri karsilastirmak da mumkun ama karsilastirma yaparken ASCII degeri esas aliniyor. Yani buyuk kucuk harf konusuna dikkat..
"x" > "y" -> false
"y" > "x" -> true
Kursun icinde kelimesi bile edilmedi temel kavramlarin ama bu konuyu anlamadan ilerlemem mumkun olmadigi icin kitaplar internet vs ile arastirmalara daldim.
En basinda da belirttigim gibi bu konu bir cok baska altbaslikla birlikte Ruby'i ele aliyor. Yani kursun adi Ruby olsa da derslerde nadiren adini duyuyoruz.
Ben bu yazida sadece Ruby'deki temel kavramlardan string uzerine egilecegim.
Strings
her zamanki gibi once string ile baslayalim. Cunku hem cok kullanilan hem de oldukca fazla detayi olan bir kavram. Ben sahsen bir konunun butun fonksiyonlarini ezberlemem ama neler yapabildigini mutlaka ogrenirim.
String tanimlarken diger dillerden esnek olarak tek tirnak ile cift tirnak kullanimi su sekilde
myvar = "bu Ali'nin blogu"
myvar = 'ali "hey" diye seslendi '
her ikisi de dogru
"some string".length -> string'in boyu icin (tahmin etmissinizdir)
"some string".delete("st") -> some ring
"some string".gsub("g", "k") -> some strink
"some string".gsub!("g", "k") -> some strink ama variable'in kendisi de degisir
"some string".gsub!("g", "k") -> some strink ama variable'in kendisi de degisir
"some string".split("e") -> ["som", " string"]
"some string"[0..3] -> "some" 0+1+2+3 -> s+o+m+e
"some string"[3..-1] -> "estring"
"some string"[3..-2] -> "estrin"
someobject.to_s -> objeyi stringe cevirir
var = "fishy"
"something #{var} is going on" -> something fishy going on
x = 10
y = 20
puts "#{x} + #{y} = #{x+y}" - > 10 + 20 = 30
x = 10
y = 20
puts "#{x} + #{y} = #{x+y}" - > 10 + 20 = 30
"something".reverse -> "gnirtsemos" - gosterir ama degiskenin kendisini degistirmez
"something".reverse! -> "gnirtsemos" - gosterir ve degiskenin kendisini degistirir
"something".upcase -> "SOMETHING"
"SOMETHING".downcase -> "something"
"SomeThing".swapcase ->"sOMEtHING"
"something".capitalize -> "Something"
"something".chop -> somethin
"something".next -> somethinh
"somethiiiiiiiing".squeeze -> something
"something".next -> somethinh
"somethiiiiiiiing".squeeze -> something
"test some thing".squeeze -> "test some thing" birden fazla space varsa tek space'e indirir. reverse gibi sonuna "!" kullanarak kullanmak mumkun
irb'de "".methods yazarak string ile ilgili methodlari listeleyebilirsiniz.
Birden fazla satir iceren string nesneleri su sekillerde kullanilabiliyor
x=%q{bu bir cok satirli metindir} | x=%q!bu bir cok satirli metindir! | x=<<END_OF_TXT bu bir cok satirli metindir END_OF_TXT |
%q tek tirnak manasina geliyor %Q ise cift tirnak
END_OF_TEXT metninin manasi yok siz ne isterseniz onu yazabiliyorsunuz.
size bir programci olarak "abc" * 5 desem hemen bir error cikacagini dusunursunuz degil mi ? ama degil. sonuc : "abcabcabcabcabc"
Stringleri karsilastirmak da mumkun ama karsilastirma yaparken ASCII degeri esas aliniyor. Yani buyuk kucuk harf konusuna dikkat..
"x" > "y" -> false
"y" > "x" -> true
Hiç yorum yok:
Yorum Gönder