Article View: pl.comp.lang.ruby
Article #221Re: Jak dodać własną metodę typu nazwa! do klasy?
From: Rafał Komorowski
Date: Sat, 07 Oct 2006 23:25
Date: Sat, 07 Oct 2006 23:25
41 lines
2357 bytes
2357 bytes
On 2006-10-07 23:38:50 +0200, Marcin Mielżyński <lopx@gazeta.pl> said:
> Tutaj chodzi chyba spójność z Fixnumem. Pomimo że Float nie jest
> immediate value - jest immutable.
Dzięki, wydaje mi się, że zrozumiałem :-)
> tutaj jest algorytm dekodowania typów Rubiego:
> http://www.oreillynet.com/ruby/blog/2006/01/the_ruby_value_1.html
Bardzo ciekawy artykulik. Dobrze, że coraz więcej jest bardziej
zaawansowanych materiałów o Rubym, idziemy do przodu! :-)
> ...Najlepiej zrób kompozycje.
Co masz na myśli? "aggregation" w sensie railsowym?
A tak ogólnie, w klasach wbudowanych w Rubiego bardzo brakuje mi paru
dość oczywistych funkcji, w tym właśnie zaokrąglania floata do zadanego
miejsca po przecinku. Szkoda takie podstawowe rzeczy implementować już
w interpretowanym kodzie, do tego przecież właśnie dobrze nadaje się
kompilowane C.
Ponadto chciałbym też mieć sprintf, które generuje przecinek jako
decimal-point i kropkę jako thousands-separator, ale to już z innej
beczki. Z braku lepszego pomysłu mam po prostu:
class Fixnum
def format00
sprintf("%d", self).gsub(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1.")
end
end
ale serce mi się kraje, jak widzę wyrażenia regularne zastosowane do
tak prymitywnych rzeczy. Może jednak warto nauczyć się robić wstawkę w
C do kodu Rubiego? Nie interesowałem się tym na razie, ale widzę, że w
"biblii" jest to szeroko opisane.
--
komor_newsNO@macSPAM.com
Technical Details
Message-ID:
<eg9d1o$q20$1@news.task.gda.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mailReferences:
<eg90si$dj4$1@news.task.gda.pl> <eg96pc$u4t$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.task.gda.pl!not-for-mail From: Rafał Komorowski <komor_newsBEZ@macSPAMU.com> Newsgroups: pl.comp.lang.ruby Subject: Re: Jak dodać własną metodę typu nazwa! do klasy? Date: Sun, 8 Oct 2006 01:25:45 +0200 Organization: CI TASK http://www.task.gda.pl/ Lines: 42 Message-ID: <eg9d1o$q20$1@news.task.gda.pl> References: <eg90si$dj4$1@news.task.gda.pl> <eg96pc$u4t$1@news.onet.pl> NNTP-Posting-Host: public-gprs17295.centertel.pl Mime-Version: 1.0 X-Trace: news.task.gda.pl 1160263547 26688 87.96.67.143 (7 Oct 2006 23:25:47 GMT) X-Complaints-To: abuse@news.task.gda.pl NNTP-Posting-Date: Sat, 7 Oct 2006 23:25:47 +0000 (UTC) User-Agent: Unison/1.7.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit