🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.ruby
Article #219

Jak dodać własną metodę typu nazwa! do klasy?

#219
From: Rafał Komorowski
Date: Sat, 07 Oct 2006 19:58
33 lines
1644 bytes
Nie spodziewam się pozytywnej odpowiedzi na poniższe pytanie, ale wolę 
spróbować. Chcę rozszerzyć funkcjonalność klasy Float o kilka 
brakujących metod.

Działa mi takie coś:

	class Float
	 	# zaokrągla liczbę typu Float do jednego miejsca po przecinku
		def round01
			(self*10).round / 10.0
		end
	end

I fajnie. Ale marzy mi się napisanie także metody round01!, która 
zaokrągla liczbę "in place". Żeby można było napisać:
	a=3.1415
	a.round01!

Zdaje się, że jest to niemożliwe, bo klasa Float nie jest 
zaimplementowana w Rubym. Próba typu:

	def round01!
		self = (self*10).round / 10.0
	end

kończy się porażką, ponieważ wartość self jest tylko do odczytu. Czy 
dobrze myślę, że nie da się tego zrobić  bez grzebania w implementacji 
klasy Float?



-- 
komor_newsNO@macSPAM.com
Technical Details
Message-ID: <eg90si$dj4$1@news.task.gda.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.task.gda.pl!not-for-mail
From: Rafał Komorowski <komor_newsBEZ@macSPAMU.com>
Newsgroups: pl.comp.lang.ruby
Subject: Jak dodać własną metodę typu nazwa!
 do klasy?
Date: Sat, 7 Oct 2006 21:58:11 +0200
Organization: CI TASK http://www.task.gda.pl/
Lines: 34
Message-ID: <eg90si$dj4$1@news.task.gda.pl>
NNTP-Posting-Host: public-gprs17295.centertel.pl
Mime-Version: 1.0
X-Trace: news.task.gda.pl 1160251092 13924 87.96.67.143 (7 Oct 2006 19:58:12 GMT)
X-Complaints-To: abuse@news.task.gda.pl
NNTP-Posting-Date: Sat, 7 Oct 2006 19:58:12 +0000 (UTC)
User-Agent: Unison/1.7.6
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit