Ŭ·¡½º :: µµÆ® :: À¯Çü

À¯Çü Á¦¾à Á¶°Ç¿¡ ´ëÇÑ ±âº» Ŭ·¡½º
Áö±Ý ´Ù¿î·Îµå

Ŭ·¡½º :: µµÆ® :: À¯Çü ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • Perl Artistic License
  • °¡°Ý:
  • FREE
  • °Ô½ÃÀÚ À̸§:
  • Ask Solem
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:
  • http://search.cpan.org/~asksh/Modwheel-0.3.3/lib/Modwheel.pm

Ŭ·¡½º :: µµÆ® :: À¯Çü ű×


Ŭ·¡½º :: µµÆ® :: À¯Çü ¼³¸í

À¯Çü Á¦¾à Á¶°ÇÀ»À§ÇÑ ±âº» Ŭ·¡½º Ŭ·¡½º :: DOT :: TypeÀº Type Constraints.Synopsis #¿¡ ´ëÇÑ ±âº» Perl Ŭ·¡½ºÀÔ´Ï´Ù. ¾Æ¸¶µµÀÌ Á¤º¸¸¦ ÀνºÅϽºÀÇ __meta__ # attriute¿¡¼­ ¾òÀ¸·Á°íÇÕ´Ï´Ù. ÆÐÅ°Áö myclass; Ŭ·¡½º :: Dot2 »ç¿ë; ¼Ó¼º 'name'=> (isa => str ', default =>'Fox Quick Brown ')); sub play_with_attribute_meta {my ($ self) = @_; ³» $ name_meta = $ self -> __ meta __ ( 'name'); # ¼Ó¼º À̸§¿¡ ´ëÇÑ À¯ÇüÀÇ À̸§À» °¡Á®¿É´Ï´Ù. ³» $ type = $ name_meta-> À¯Çü; # ¾î¶² Á¾·ùÀÇ Á¢±ÙÀÚ¸¦ ¾Ë¾Æº¸½Ê½Ã¿À. (±âº»°ª : overridable) ³» $ accessor_type = $ name_meta-> accessor_type; #ÀÌ À¯Çü¿¡ ´ëÇÑ Á¦¾à Á¶°Ç °Ë»ç¸¦ ÇÏÀ§ ·çƾ Ref¸¦ ¾òÀ¸½Ê½Ã¿À. $ check_constraint = $ name_meta-> Á¦¾à Á¶°Ç; ³» $ current_value = $ self-> À̸§; if (! $ check_constraint -> ($ current_value)) {croak "À̸§ÀÇ °ªÀº $ type"} # getter ¹× setter À̸§À» °¡Á® ¿ÀÁö ¾Ê½À´Ï´Ù. ³» $ getter_name = $ name_meta-> getter_name; my $ setter_name = $ name_meta-> setter_name; # À̸§ ()À» È£ÃâÇÏ¿© °ªÀ» °¡Á®¿É´Ï´Ù () : $ current_value = $ self -> $ getter_name; # set_name ($ value) $ self-> $ setter_name ( '»õ °ª')À» È£ÃâÇÏ¿© °ªÀ» ¼³Á¤ÇϽʽÿÀ. #ÀÌ À¯ÇüÀÇ ºÎ¸ð ¸ñ·ÏÀ» ¾òÀ¸½Ê½Ã¿À. ³» @isa_for_type = $ meta-> linear_isa; #ÀÌ À¯Çü¿¡ ´ëÇÑ °³ÀÎ Á¤º¸ Ãë±Þ ¿É¼ÇÀ» °¡Á®¿É´Ï´Ù (±âº»°ª : public (rw)). MY $ Privacy_Type = $ Meta-> °³ÀÎ Á¤º¸ º¸È£; #ÀÌ °³ÀÎ Á¤º¸ Ãë±Þ ¹æħ À¯Çü¿¡ ´ëÇÑ °³ÀÎ Á¤º¸ Ãë±Þ ¹æħÀ» ¾òÀ¸½Ê½Ã¿À. MY $ Privacy_Rules = $ meta-> privacy_rule; $ Privacy_Rules -> {has_getter}; $ Privacy_Rules -> {has_setter}; ¹ÝÇ°; } ¿ä±¸ »çÇ× : ¡¤ Perl.


Ŭ·¡½º :: µµÆ® :: À¯Çü °ü·Ã ¼ÒÇÁÆ®¿þ¾î