Article View: pl.comp.lang.ruby
Article #223Re: Jak dodać własną metodę typu nazwa! do klasy?
From: Rafał Komorowski
Date: Sun, 08 Oct 2006 12:48
Date: Sun, 08 Oct 2006 12:48
69 lines
3658 bytes
3658 bytes
On 2006-10-08 02:04:00 +0200, Marcin Mielżyński <lopx@gazeta.pl> said: > na szybko zrobiłem rozszerzenie z tą metodą round01 - działa bez problemu: Jesteś niesamowity :-) Dzięki, spróbuję to wsadzić do swojego kodu. Oczywiście takie wstawki mają tę wadę, że trzeba to też wpychać na serwery produkcyjne, co może być problematyczne, jeśli nie ma się pełnej kontroli nad takim serwerem, ale na razie ten problem mi nie grozi. > b = a = 1.3 > p a.round01! > p b > > i tego właśnie Matz chciał pewnie uniknąć... Co masz na myśli? Zmianę prostej wartości "w miejscu"? Z tego co widzę, funkcje z wykrzyknikiem są rzeczywiście zdefiniowane raczej do bardziej skomplikowanych struktur, ja się nie upieram, żeby w Rubiego koniecznie była wbudowana wersja "!", ale sama potrzeba istnienia zaokrąglania do określonej cyfry po przecinku jest - i nie ma co z tym dyskutować. Jak nie będzie tego w języku, to będzie trzeba to robić w kodzie Ruby, co będzie bardziej kosztowne. Patrzę jeszcze raz na zacytowany powyżej kod i nie jestem pewien czy się zrozumieliśmy, moja funkcja ma robić takie coś: 3.1415.round01 => 3.1 3.1615.round01 => 3.2 (pomijam problem wykrzyknika). Oczywiście gdyby takie coś miało trafić do języka, to musiałoby być bardziej ogólne, czyli np. przyjmować argument decydujący o ilości miejsc po przecinku. 3.1465.round(3) => 3.147 > Druga sprawa - patrzę na źródła 1.9 - RFloat jeszcze tam jest - ale > może się zdarzyć że pewnego dnia FLoat stanie się immediate i nie > będzie już żadnych sztuczek (np: rezerwacja 3 bitu z VALUE). W tej > chwili Floaty w Rubym są bardzo kosztowne niewiele dając w zamian. Nie rozumiem. Uważasz, że float powinien zniknąć jako struktura danych? Czy chodzi ci tylko o ryzyko rozszerzania klasy Float wstawkami w C? >> 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. > > wszystko jest ;) > > puts "%.3f" % 12.5234 Chyba się nie zrozumieliśmy. Mi chodzi o to, żeby zgodnie z zasadami języka polskiego (i nie tylko) _przecinek_ robił za "decimal-point", a _kropka_ jako "thousands-separator", czyli dokładnie odwrotnie niż w języku angielskim. Żeby zamiast formatowania typu: 12,345,678.99 $ otrzymać w prosty sposób: 12.345.678,99 zł :-) Czy to jest możliwe w standardowym sprintf? Z tego co przejrzałem to ani w C ani w Rubym nie ma takiej możliwości wprost? -- komor_newsNO@macSPAM.com
Technical Details
Message-ID:
<egas2q$1rr$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> <eg9d1o$q20$1@news.task.gda.pl> <eg9f9k$d1j$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 14:48:26 +0200 Organization: CI TASK http://www.task.gda.pl/ Lines: 70 Message-ID: <egas2q$1rr$1@news.task.gda.pl> References: <eg90si$dj4$1@news.task.gda.pl> <eg96pc$u4t$1@news.onet.pl> <eg9d1o$q20$1@news.task.gda.pl> <eg9f9k$d1j$1@news.onet.pl> NNTP-Posting-Host: public-gprs1304.centertel.pl Mime-Version: 1.0 X-Trace: news.task.gda.pl 1160311709 1915 87.96.5.24 (8 Oct 2006 12:48:29 GMT) X-Complaints-To: abuse@news.task.gda.pl NNTP-Posting-Date: Sun, 8 Oct 2006 12:48:29 +0000 (UTC) User-Agent: Unison/1.7.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit