10 Ekim 2013 Perşembe

Temel Kavramlar - Ruby'de String

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.

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".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


"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


"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