Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 23:23 03.07.25 
Клубове/ Компютри и Интернет / Ruby Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Низове [re: Учeщ]
Автор УчeщМодератор (непознат)
Публикувано25.10.06 22:23  



Ruby работи със стрингове също така добре както и със числови данни. Стринговете
в Ruby могат да бъдат ограждани с двойни ("...") или единични кавички ('...').



C:\ruby\samples\RubySrc-1.8.5\sample>ruby eval.rb
ruby> "abc"
"abc"
ruby>


Двойните и единичните кавички имат различен ефект в някой случай. Когато стринга
е ограден с двойни кавички можем да ескейпваме ползвайки обратно наклонена черта,
както и изпълнението на вградени изрази в низа чрез #{}. Стринговете оградени с
единични кавички нямат това интерпретиране. Каквото виждаш, това и получаваш.
Например:


C:\ruby\samples\RubySrc-1.8.5\sample>ruby eval.rb
ruby> print "a\nb\nc","\n"
a
b
c
nil
ruby> print 'a\nb\nc','\n'
a\nb\nc\nnil
ruby> "\n"
"\n"
ruby> '\n'
"\\n"
ruby> "\001"
"\001"
ruby> '\001'
"\\001"
ruby> "abcd #{5*3} efg"
"abcd 15 efg"
ruby> var = " abc "
" abc "
ruby> "1234#{var}5678"
ERR: undefined local variable or method `var' for main:Object
ruby> var = " abc " "1234#{var}5678"
" abc 12345678"
ruby>


Руби е много гъвкав в работата със низове. Например може да конкатенираме
стрингове със + и да ги повтаряме със *:


C:\ruby\samples\RubySrc-1.8.5\sample>ruby eval.rb
ruby> "foo" + "bar"
"foobar"
ruby> "foo" * 2
"foofoo"
ruby>


Ето няколко примера какво можем да направим със низовете в Ruby.
Конкатенация:


ruby> word = "fo" + "o"
"foo"


Повторение:


ruby> word = word * 2
"foofoo"


Изличане на символи. Забележете че символите са числа в Руби.


ruby> word[0]
102 # 102 е ASCII кода на `f'
ruby> word[-1]
111 # 111 е ASCII кода на `o'


Минусът означава начало от края на низа.
Извличане на стрингове.


ruby> herb = "parsley"
"parsley"
ruby> herb[0,1]
"p"
ruby> herb[-2,2]
"ey"
ruby> herb[0..3]
"pars"
ruby> herb[-5..-2]
"rsle"


Тестване за еднаквост:


ruby> "foo" == "foo"
true
ruby> "foo" == "bar"
false


Нека да ползваме някой от разгледаните неща в малък пример:


# Запиши това като guess.rb
words = ['foobar', 'baz', 'quux']
secret = words[rand(3)]

print "guess? "
while guess = STDIN.gets
guess.chop!
if guess == secret
print "You win!\n"
break
else
print "Sorry, you lose.\n"
end
print "guess? "
end
print "The word was ", secret, ".\n"


Това е малко примерче каращо потребителя да
познае случайна дума от три при шанс 1 към 3.

Редактирано от Учeщ на 25.10.06 22:25.



Цялата тема
ТемаАвторПубликувано
* Синтаксис на Руби. УчeщМодератор   12.10.06 21:11
. * Изпълнение на входен код. Учeщ   16.10.06 22:12
. * Низове Учeщ   25.10.06 22:23
. * Низове supremacy   27.10.06 02:52
. * Регулярни изрази. Учeщ   09.12.06 15:26
. * Re: Изпълнение на входен код. supremacy   27.10.06 02:47
. * Re: Изпълнение на входен код. borko-b   25.02.07 13:57
. * Re: Синтаксис на Руби. supremacy   27.10.06 02:41
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.