Â¥Ö÷: Limdep
2924 0

ΪʲôҪѧϰScala? [ÍÆ¹ãÓн±]

  • 0¹Ø×¢
  • 2·ÛË¿

ÒÑÂô£º117·Ý×ÊÔ´

±¾¿ÆÉú

98%

»¹²»ÊÇVIP/¹ó±ö

-

TAµÄÎĿ⠠ÆäËû...

Java×ÊÔ´È«»ã

Data Science NewOccidental

Database NewOccidental

ÍþÍû
0 ¼¶
ÂÛ̳±Ò
4718 ¸ö
ͨÓûý·Ö
4.2550
ѧÊõˮƽ
8 µã
ÈÈÐÄÖ¸Êý
3 µã
ÐÅÓõȼ¶
3 µã
¾­Ñé
1089 µã
Ìû×Ó
133
¾«»ª
0
ÔÚÏßʱ¼ä
20 Сʱ
×¢²áʱ¼ä
2006-5-15
×îºóµÇ¼
2017-10-27

Â¥Ö÷
Limdep ·¢±íÓÚ 2015-4-19 21:46:28 |AIдÂÛÎÄ

+2 ÂÛ̳±Ò
kÈË ²ÎÓë»Ø´ð

¾­¹ÜÖ®¼ÒËÍÄúÒ»·Ý

Ó¦½ì±ÏÒµÉúרÊô¸£Àû!

ÇóÖ°¾ÍҵȺ
ÕÔ°²¶¹ÀÏʦ΢ÐÅ£ºzhaoandou666

¾­¹ÜÖ®¼ÒÁªºÏCDA

ËÍÄúÒ»¸öÈ«¶î½±Ñ§½ðÃû¶î~ !

¸ÐлÄú²ÎÓëÂÛ̳ÎÊÌâ»Ø´ð

¾­¹ÜÖ®¼ÒËÍÄúÁ½¸öÂÛ̳±Ò£¡

+2 ÂÛ̳±Ò
Èç¹ûÄãÊÇÒ»ÃûJava³ÌÐòÔ±£¬²¢ÇÒ¹Ø×¢Õâ±à³ÌÓïÑÔ·½ÃæµÄ·¢Õ¹£¬±ÈÈç¾­³£È¥TIOBEÍøÕ¾Á˽â±à³ÌÓïÑÔÁ÷ÐжÈÅÅÐУ¬ÄÇôÄãÓ¦¸ÃÌý˵¹ýScala£¬Èç¹ûÄ㻹ûÓпªÊ¼Ñ§Ï°Scala£¬»òÕß´òËãϸöÀñ°Ý¿ªÊ¼Ñ§µÄ»°£¬ÇëÏÈ¿´¿´ÏÂÃæÕâÆªÎÄÕ£¬¿´¿´Äܲ»ÄܸıäÄãµÄÏë·¨¡£ÏÂÃæµÄÄÚÈÝΪProgramming In Scala Õâ±¾ÊéµÄ½ÚÑ¡. ScalaÊÇΪÄã×¼±¸µÄÂð£¿Äã±ØÐë×Ô¼º¿´Ã÷°×²¢×ö¾ö¶¨¡£³ýÁËÉìÕ¹ÐÔÖ®Í⣬ÎÒÃÇ·¢ÏÖϲ»¶ÓÃScala±à³Ìʵ¼ÊÉÏ»¹ÓкܶàÀíÓÉ¡£×îÖØÒªµÄËĸö½«ÔÚ±¾½ÚÌÖÂ۵ķ½Ãæ¸ÃÊÇ£º¼æÈÝÐÔ£¬¼ò¶Ì£¬¸ß²ã¼¶³éÏóºÍ¸ß¼¶µÄ¾²Ì¬Àà±ð¡£

ScalaÊǼæÈݵÄ
   Scala²»ÐèÒªÄã´ÓJavaƽ̨ºóÍËÁ½²½È»ºóÌøµ½JavaÓïÑÔÇ°ÃæÈ¥¡£ËüÔÊÐíÄãÔÚÏÖ´æ´úÂëÖмӵã¶ù¶«Î÷¡ª¡ªÔÚÄãÒÑÓеĶ«Î÷ÉϽ¨É衪¡ªÒòΪËü±»Éè¼Æ³ÉÎÞ·ìµØÓëJavaʵʩ»¥²Ù×÷¡£Scala³ÌÐò»á±»±àÒëΪJVMµÄ×Ö½ÚÂë¡£ËüÃǵÄÖ´ÐÐÆÚÐÔÄÜͨ³£ÓëJava³ÌÐòÒ»Ö¡£Scala´úÂë¿ÉÒÔµ÷ÓÃJava·½·¨£¬·ÃÎÊJava×ֶΣ¬¼Ì³Ð×ÔJavaÀàºÍʵÏÖJava½Ó¿Ú¡£ÕâЩ¶¼²»ÐèÒªÌØ±ðµÄÓï·¨£¬ÏÔʽ½Ó¿ÚÃèÊö£¬»òÕ³½Ó´úÂ롣ʵ¼ÊÉÏ£¬¼¸ºõËùÓÐScala´úÂë¶¼¼«¶ÈÒÀÀµÓÚJava¿â£¬¶ø¾­³£ÎÞÐëÔÚ³ÌÐòÔ±Òâʶµ½Õâµã¡£
   ½»»¥Ê½²Ù×÷µÄÁíÒ»¸ö·½ÃæÊÇScala¼«¶ÈÖØÓÃÁËJavaÀàÐÍ¡£ScalaµÄIntÀàÐÍ´ú±íÁËJavaµÄԭʼÕûÊýÀàÐÍint£¬Float´ú±íÁËfloat£¬Boolean´ú±íboolean£¬µÈµÈ¡£ScalaµÄÊý×é±»Ó³Éäµ½JavaÊý×é¡£ScalaͬÑùÖØÓÃÁËÐí¶à±ê×¼Java¿âÀàÐÍ¡£ÀýÈ磬ScalaÀïµÄ×Ö´®Îı¾"abc"ÊÇjava.lang.String£¬¶øÅ׳öµÄÒì³£±ØÐëÊÇjava.lang.ThrowableµÄ×ÓÀà¡£
   Scala²»½öÖØÓÃÁËJavaµÄÀàÐÍ£¬»¹°ÑËüÃÇ¡°´ò°ç¡±µÃ¸üƯÁÁ¡£ÀýÈ磬ScalaµÄ×Ö´®Ö§³ÖÀàËÆÓÚtoIntºÍtoFloatµÄ·½·¨£¬¿ÉÒÔ°Ñ×Ö´®×ª»»³ÉÕûÊý»òÕ߸¡µãÊý¡£Òò´ËÄã¿ÉÒÔдstr.toIntÌæ´úInteger.parseInt(str)¡£ÈçºÎÔÚ²»´òÆÆ»¥²Ù×÷ÐԵĻù´¡ÉÏ×öµ½ÕâµãÄØ£¿JavaµÄStringÀ൱Ȼ²»»áÓÐtoInt·½·¨¡£Êµ¼ÊÉÏ£¬ScalaÓÐÒ»¸ö½â¾öÕâÖָ߼¶¿âÉè¼ÆºÍ»¥²Ù×÷ÐÔ²»ÏàºÍгµÄͨÓ÷½°¸¡£Scala¿ÉÒÔÈÃÄ㶨ÒåÒþʽת»»£ºimplicit conversion£¬Õâ³£³£ÓÃÔÚÀàÐÍʧÅ䣬»òÕßÑ¡Óò»´æÔڵķ½·¨Ê±¡£ÔÚÉÏÃæµÄÀý×ÓÀµ±ÔÚ×Ö´®ÖÐѰÕÒtoInt·½·¨Ê±£¬Scala±àÒëÆ÷»á·¢ÏÖStringÀàÀïûÓÐÕâÖÖ·½·¨£¬µ«Ëü»á·¢ÏÖÒ»¸ö°ÑJavaµÄStringת»»ÎªScalaµÄRichStringÀàµÄÒ»¸öʵÀýµÄÒþʽת»»£¬ÀïÃæ¶¨ÒåÁËÕâô¸ö·½·¨¡£ÓÚÊÇÔÚÖ´ÐÐtoInt²Ù×÷֮ǰ£¬×ª»»±»ÒþʽӦÓá£

    Scala´úÂëͬÑù¿ÉÒÔÓÉJava´úÂëµ÷Óá£ÓÐʱÕâÖÖÇé¿öÒª¸ü¼Ó΢ÃÒòΪScalaÊÇÒ»ÖÖ±ÈJava¸ü·á¸»µÄÓïÑÔ£¬ÓÐЩScala¸üÏȽøµÄÌØÐÔÔÚËüÃÇÄÜÓ³Éäµ½JavaǰÐèÒªÏȱ»±àÂëһϡ£µÚ29ÕÂ˵Ã÷ÁËÆäÖеÄϸ½Ú¡£

ScalaÊǼò½àµÄ
Scala³ÌÐòÒ»°ã¶¼ºÜ¶Ì¡£Scala³ÌÐòÔ±Ôø±¨¸æËµÓëJava±ÈÆðÀ´´úÂëÐÐÊý¿ÉÒÔ¼õÉÙµ½1/10¡£ÕâÓпÉÄÜÊǸö¼«ÏÞµÄÀý×Ó¡£½Ï±£ÊصĹÀ¼Æ´ó¸Å±ê×¼µÄScala³ÌÐòÓ¦¸ÃÓÐJavaдµÄͬÑùµÄ³ÌÐòÒ»°ëÐÐÊý×óÓÒ¡£¸üÉÙµÄÐÐÊý²»½öÒâζןüÉٵĴò×Ö¹¤×÷£¬Í¬ÑùÒâζןüÉٵϰÔÚÔĶÁºÍÀí½â³ÌÐòÉϵÄŬÁ¦¼°¸üÉٵijö´í¿ÉÄÜ¡£Ðí¶àÒòËØÔÚ¼õÉÙ´úÂëÐÐÉÏÆðÁË×÷Óá£
    Ê×ÏÈ£¬ScalaµÄÓï·¨±ÜÃâÁËÒ»Ð©Êø¸¿Java³ÌÐòµÄ¹Ì¶¨Ð´·¨¡£ÀýÈ磬ScalaÀïµÄ·ÖºÅÊÇ¿ÉÑ¡µÄ£¬ÇÒͨ³£²»Ð´¡£ScalaÓï·¨ÀﻹÓкܶàÆäËûµÄµØ·½Ê¡ÂÔÁ˶«Î÷¡£±È·½Ëµ£¬±È½ÏÒ»ÏÂÄãÔÚJavaºÍScalaÀïÊÇÈçºÎдÀ༰¹¹Ô캯ÊýµÄ¡£ÔÚJavaÀ´øÓй¹Ô캯ÊýµÄÀྭ³£¿´ÉÏÈ¥ÊÇÕâ¸öÑù×Ó£º
  1. // ÔÚJavaÀïclass MyClass {    private int index;    private String name;    public MyClass(int index, String name) {        this.index = index;        this.name = name;    }}
¸´ÖÆ´úÂë


   ÔÚScalaÀÄã»áд³ÉÕâÑù£º
  1. class MyClass(index: Int, name: String)
¸´ÖÆ´úÂë
¸ù¾ÝÕâ¶Î´úÂ룬Scala±àÒëÆ÷½«ÖÆÔìÓÐÁ½¸ö˽ÓгÉÔ±±äÁ¿µÄÀ࣬һ¸öÃûΪindexµÄIntÀàÐͺÍÒ»¸ö½Ð×önameµÄStringÀàÐÍ£¬»¹ÓÐÒ»¸öÓÃÕâЩ±äÁ¿×÷Ϊ²ÎÊý»ñµÃ³õʼֵµÄ¹¹Ô캯Êý¡£Õâ¸ö¹¹Ô캯Êý»¹½«ÓÃ×÷Ϊ²ÎÊý´«ÈëµÄÖµ³õʼ»¯ÕâÁ½¸ö³ÉÔ±±äÁ¿¡£Ò»¾ä»°£¬Äãʵ¼ÊÄõ½ÁËÓëÂÞàµöàµÄJava°æ±¾Í¬ÑùµÄ¹¦ÄÜ¡£ScalaÀàдÆðÀ´¸ü¿ì£¬¶ÁÆðÀ´¸üÈÝÒ×£¬×îÖØÒªµÄÊÇ£¬±ÈJavaÀà¸ü²»ÈÝÒ×·¸´í¡£

ÓÐÖúÓÚScalaµÄ¼ò½àÒ×¶®µÄÁíÒ»¸öÒòËØÊÇËüµÄÀàÐÍÍÆ¶Ï¡£Öظ´µÄÀàÐÍÐÅÏ¢¿ÉÒÔ±»ºöÂÔ£¬Òò´Ë³ÌÐò±äµÃ¸üÓÐÌõÀíºÍÒ×¶Á¡£µ«»òÐí¼õÉÙ´úÂë×î¹Ø¼üµÄÊÇÒòΪÒѾ­´æÔÚÓÚÄãµÄ¿âÀï¶ø²»ÐèҪдµÄ´úÂë¡£Scala¸øÁËÄãÐí¶à¹¤¾ßÀ´¶¨ÒåÇ¿ÓÐÁ¦µÄ¿âÈÃÄãץס²¢ÌáÁ¶³öͨÓõÄÐÐΪ¡£ÀýÈ磬¿âÀàµÄ²»Í¬·½Ãæ¿ÉÒÔ±»·Ö³ÉÈô¸ÉÌØÖÊ£¬¶øÕâЩÓпÉÒÔ±»Áé»îµØ»ìºÏÔÚÒ»Æð¡£»òÕߣ¬¿â·½·¨¿ÉÒÔÓòÙ×÷·û²ÎÊý»¯£¬´Ó¶øÈÃÄãÓÐЧµØ¶¨ÒåÄÇЩÄã×Ô¼º¿ØÖƵĹ¹Ôì¡£ÕâЩ¹¹Ôì×éºÏÔÚÒ»Æð£¬¾ÍÄܹ»ÈÿâµÄ¶¨Òå¼ÈÊǸ߲㼶µÄÓÖÄÜÁé»îÔËÓá£

  ScalaÊǸ߲㼶µÄ
    ³ÌÐòÔ±×ÜÊÇÔں͸´ÔÓÐÔ¾À²ø¡£ÎªÁ˸߲ú³öµÄ±à³Ì£¬Äã±ØÐëÃ÷°×Ä㹤×÷µÄ´úÂë¡£¹ý¶È¸´ÔӵĴúÂë³ÉÁ˺ܶàÈí¼þ¹¤³Ì±ÀÀ£µÄÔ­Òò¡£²»ÐÒµÄÊÇ£¬ÖØÒªµÄÈí¼þÍùÍùÓи´ÔÓµÄÐèÇó¡£ÕâÖÖ¸´ÔÓÐÔ²»¿É±ÜÃ⣻±ØÐ루Óɲ»Êܿأ©×ªÎªÊܿء£

    Scala¿ÉÒÔͨ¹ýÈÃÄãÌáÉýÄãÉè¼ÆºÍʹÓõĽӿڵijéÏó¼¶±ðÀ´°ïÖúÄã¹ÜÀí¸´ÔÓÐÔ¡£ÀýÈ磬¼ÙÉèÄãÓÐÒ»¸öString±äÁ¿name£¬ÄãÏëŪÇå³þÊÇ·ñString°üº¬Ò»¸ö´óд×Ö·û¡£ÔÚJavaÀÄã»òÐíÕâôд£º
  1. // ÔÚJavaÀïboolean nameHasUpperCase = false;for (int i = 0; i < name.length(); ++i) {    if (Character.isUpperCase(name.charAt(i))) {        nameHasUpperCase = true;        break;    }}
¸´ÖÆ´úÂë

   ÔÚScalaÀÄã¿ÉÒÔд³É£º
  1. val nameHasUpperCase = name.exists(_.isUpperCase)
¸´ÖÆ´úÂë

    Java´úÂë°Ñ×Ö´®¿´×÷Ñ­»·ÖÐÖð×Ö·û²½½øµÄµÍ²ã¼¶ÊµÌå¡£Scala´úÂë°ÑͬÑùµÄ×Ö´®µ±×÷ÄÜÓÃÂÛ¶Ï£ºpredicate²éѯµÄ×Ö·û¸ß²ã¼¶ÐòÁС£Ã÷ÏÔScala´úÂë¸ü¶Ì²¢ÇÒ¡ª¡ª¶ÔѵÁ·ÓÐËØµÄÑÛ¾¦À´Ëµ¡ª¡ª±ÈJava´úÂë¸üÈÝÒ×¶®¡£Òò´ËScala´úÂëÔÚͨÅ̸´ÔÓ¶ÈÔ¤ËãÉÏÄܼ«¶ÈµØ±äÇá¡£ËüÒ²¸üÉÙ¸øÄã»ú»á·¸´í¡£


ÂÛ¶Ï£¬_.isUpperCase£¬ÊÇÒ»¸öScalaÀïÃæº¯ÊýʽÎı¾µÄÀý×Ó¡£ËüÃèÊöÁË´øÒ»¸ö×Ö·û²ÎÁ¿£¨ÓÃÏ»®Ïß×Ö·û´ú±í£©µÄº¯Êý£¬²¢²âÊÔÆäÊÇ·ñΪ´óд×Öĸ¡£
    Ô­ÔòÉÏ£¬ÕâÖÖ¿ØÖƵijéÏóÔÚJavaÖÐÒ²ÊÇ¿ÉÄܵġ£Îª´ËÐèÒª¶¨ÒåÒ»¸ö°üº¬³éÏó¹¦Äܵķ½·¨µÄ½Ó¿Ú¡£ÀýÈ磬Èç¹ûÄãÏëÖ§³Ö¶Ô×Ö´®µÄ²éѯ£¬¾ÍÓ¦ÒýÈëÒ»¸öÖ»ÓÐÒ»¸ö·½·¨hasPropertyµÄ½Ó¿ÚCharacterProperty£º
  1. // ÔÚJavaÀïinterface CharacterProperty {    boolean hasProperty(char ch);}    È»ºóÄã¿ÉÒÔÔÚJavaÀïÓÃÕâ¸ö½Ó¿Ú¸ñʽһ¸ö·½·¨exists£ºËü´øÒ»¸ö×Ö´®ºÍÒ»¸öCharacterProperty²¢·µ»ØÕæÈç¹û×Ö´®ÖÐÓÐij¸ö×Ö·û·ûºÏÊôÐÔ¡£È»ºóÄã¿ÉÒÔÕâÑùµ÷ÓÃexists£º// ÔÚJavaÀïexists(name, new CharacterProperty {    boolean hasProperty(char ch) {        return Character.isUpperCase(ch);    }});
¸´ÖÆ´úÂë

    È»¶ø£¬ËùÓÐÕâÐ©ÕæµÄ¸Ð¾õºÜÖØ¡£Öص½Êµ¼ÊÉ϶àÊýJava³ÌÐòÔ±¶¼²»»áÈÇÕâ¸öÂé·³¡£ËûÃÇ»áÄþԸд¸öÑ­»·²¢Ä®ÊÓËûÃÇ´úÂëÀ︴ÔÓÐÔµÄÀÛ¼Ó¡£ÁíÒ»·½Ã棬ScalaÀïµÄº¯ÊýʽÎı¾ÕæµØºÜÇáÁ¿£¬ÓÚÊÇ¾ÍÆµ·±±»Ê¹Óá£Ëæ×ŶÔScalaµÄÖð²½Á˽⣬Äã»á·¢ÏÖÔ½À´Ô½¶à¶¨ÒåºÍʹÓÃÄã×Ô¼ºµÄ¿ØÖƳéÏóµÄ»ú»á¡£Ä㽫·¢ÏÖÕâÄܰïÖú±ÜÃâ´úÂëÖØ¸´²¢Òò´Ë±£³ÖÄãµÄ³ÌÐò¼ò¶ÌºÍÇåÎú¡£

ScalaÊǾ²Ì¬ÀàÐ͵Ä
    ¾²Ì¬ÀàÐÍϵͳÈ϶¨±äÁ¿ºÍ±í´ïʽÓëËüÃdzÖÓкͼÆËãµÄÖµµÄÖÖÀàÓйء£Scala¼á³Ö×÷ΪһÖÖ¾ßÓзdz£ÏȽøµÄ¾²Ì¬ÀàÐÍϵͳµÄÓïÑÔ¡£´ÓJavaÄÇÑùµÄÄÚǶÀàÐÍϵͳÆð²½£¬Äܹ»ÈÃÄãʹÓ÷ºÐÍ£ºgenerics²ÎÊý»¯ÀàÐÍ£¬Óý»¼¯£ºintersectionÁªºÏÀàÐͺÍÓóéÏóÀàÐÍ£ºabstract typeÒþ²ØÀàÐ͵Äϸ½Ú¡£ÕâЩΪ½¨ÔìºÍ×éÖ¯Äã×Ô¼ºµÄÀàÐÍ´òÏÂÁ˼áʵµÄ»ù´¡£¬´Ó¶øÄܹ»Éè¼Æ³ö¼´°²È«ÓÖÄÜÁé»îʹÓõĽӿڡ£
    Èç¹ûÄãϲ»¶¶¯Ì¬ÓïÑÔÈçPerl£¬Python£¬Ruby»òGroovy£¬Äã»òÐí·¢ÏÖScala°ÑËüµÄ¾²Ì¬ÀàÐÍϵͳÁÐΪÆäÓŵãÖ®Ò»ÓÐÐ©Ææ¹Ö¡£±Ï¾¹£¬Ã»Óо²Ì¬ÀàÐÍϵͳÒѱ»ÒýΪ¶¯Ì¬ÓïÑÔµÄijЩÖ÷Òª³¤´¦¡£¾ø´ó¶àÊýÆÕ±éµÄÕë¶Ô¾²Ì¬ÀàÐ͵ÄÂ۶϶¼ÈÏΪËüÃÇʹµÃ³ÌÐò¹ý¶ÈÈß³¤£¬×èÖ¹³ÌÐòÔ±ÓÃËûÃÇÏ£ÍûµÄ·½Ê½±í´ï×Ô¼º£¬²¢Ê¹Èí¼þϵͳ¶¯Ì¬¸Ä±äµÄijЩģʽ³ÉΪ²»¿ÉÄÜ¡£È»¶ø£¬ÕâЩÂ۶Ͼ­³£Õë¶ÔµÄ²»ÊǾ²Ì¬ÀàÐ͵Ä˼Ï룬¶øÊÇÖ¸ÔðÌØ¶¨µÄÄÇЩ±»Òâʶµ½Ì«Èß³¤»òÌ«²»Áé»îµÄÀàÐÍϵͳ¡£ÀýÈ磬Alan Kay£¬SmalltalkÓïÑԵķ¢Ã÷Õߣ¬ÓÐÒ»´ÎÆÀÂÛ£º¡°ÎÒ²»ÊÇÕë¶ÔÀàÐÍ£¬¶øÊDz»ÖªµÀÓÐÄĸöûÓÐÍêÍ´µÄÀàÐÍϵͳ£¬ËùÒÔÎÒ»¹ÊÇϲ»¶¶¯Ì¬ÀàÐÍ¡£¡±
    ÎÒÃÇÏ£ÍûÄÜÔÚÊéÀï˵·þÄ㣬ScalaµÄÀàÐÍϵͳÊÇԶ̸²»ÉÏ»á±ä³É¡°ÍêÍ´¡±¡£Êµ¼ÊÉÏ£¬ËüƯÁÁµØËµÃ÷ÁËÁ½¸ö¹ØÓÚ¾²Ì¬ÀàÐÍͨ³£¿¼ÂǵÄÊÂÇ飨µÄ½â¾ö·½°¸£©£ºÍ¨¹ýÀàÐÍÍÆ¶Ï±ÜÃâÁË׸ÑÔºÍͨ¹ýģʽƥÅ估һЩеıàдºÍ×éÖ¯ÀàÐ͵İ취»ñµÃÁËÁé»îÐÔ¡£°ÑÕâЩ°í½Åʯ°áµôºó£¬¾²Ì¬ÀàÐÍϵͳµÄ¾­µäÓÅÔ½ÐÔ½«¸ü±»ÉÍʶ¡£ÆäÖÐ×îÖØÒªµÄ°üÀ¨³ÌÐò³éÏóµÄ¿É¼ìÑéÊôÐÔ£¬°²È«µÄÖØ¹¹£¬ÒÔ¼°¸üºÃµÄÎĵµ¡£
¿É¼ìÑéÊôÐÔ¡£¾²Ì¬ÀàÐÍϵͳ¿ÉÒÔ±£Ö¤Ïû³ýijЩÔËÐÐʱµÄ´íÎó¡£ÀýÈ磬¿ÉÒÔ±£Ö¤ÕâÑùµÄÊôÐÔ£º²¼¶ûÐͲ»»áÓëÕûÊýÐÍÏà¼Ó£»Ë½ÓбäÁ¿²»»á´ÓÀàµÄÍⲿ±»·ÃÎÊ£»º¯Êý´øÁËÕýÈ·¸öÊýµÄ²ÎÊý£»Ö»ÓÐ×Ö´®¿ÉÒÔ±»¼Óµ½×Ö´®¼¯Ö®ÖС£
    ²»¹ýµ±Ç°µÄ¾²Ì¬ÀàÐÍϵͳ»¹²»Äܲ鵽ÆäËûÀàÐ͵ĴíÎ󡣱ȷ½Ëµ£¬Í¨³£²é²»µ½ÎÞ·¨ÖÕ½áµÄº¯Êý£¬Êý×éÔ½½ç£¬»ò³ýÁã´íÎó¡£Í¬ÑùÒ²²é²»µ½ÄãµÄ³ÌÐò²»·ûºÏʽÑùÊ飨¼ÙÉèÓÐÕâôһ·ÝʽÑùÊ飩¡£¾²Ì¬ÀàÐÍϵͳÒò´Ë±»ÈÏΪ²»ºÜÓÐÓöø±»ºöÊÓ¡£ÓßÂÛÈÏΪ¼ÈÈ»ÕâÖÖÀàÐÍϵͳֻÄÜ·¢ÏÖ¼òµ¥´íÎ󣬶øµ¥Ôª²âÊÔÄÜÌṩ¸ü¹ã·ºµÄ¸²¸Ç£¬ÓÖΪºÎ×ÔѰ·³ÄÕÄØ£¿ÎÒÃÇÈÏΪÕâÖÖÂÛµ÷²»¶ÔÍ·¡£¾¡¹Ü¾²Ì¬ÀàÐÍϵͳȷʵ²»ÄÜÌæ´úµ¥Ôª²âÊÔ£¬µ«ÊÇÈ´ÄܼõÉÙÓÃÀ´ÕÕ¹ËÄÇЩȷÐè²âÊÔµÄÊôÐԵĵ¥Ôª²âÊÔµÄÊýÁ¿¡£Í¬Ñù£¬µ¥Ôª²âÊÔÒ²²»ÄÜÌæ´ú¾²Ì¬ÀàÐÍ¡£×ܶøÑÔÖ®£¬ÈçEdsger DijkstraËù˵£¬²âÊÔÖ»ÄÜÖ¤Ã÷´æÔÚ´íÎ󣬶ø·Ç²»´æÔÚ¡£Òò´Ë£¬¾²Ì¬ÀàÐÍÄܸøµÄ±£Ö¤»òÐíºÜ¼òµ¥£¬µ«ËüÃÇÊÇÎÞÂÛ¶àÉÙ²âÊÔ¶¼²»ÄܸøµÄÕæÕýµÄ±£Ö¤¡£
°²È«µÄÖØ¹¹¡£¾²Ì¬ÀàÐÍϵͳÌṩÁËÈÃÄã¾ßÓи߶ÈÐÅÐĸ͝´úÂë»ù´¡µÄ°²È«Íø¡£ÊÔÏëÒ»¸ö¶Ô·½·¨¼ÓÈë¶îÍâµÄ²ÎÊýµÄÖØ¹¹ÊµÀý¡£ÔÚ¾²Ì¬ÀàÐÍÓïÑÔÖУ¬Äã¿ÉÒÔÍê³ÉÐ޸ģ¬ÖرàÒëÄãµÄϵͳ²¢ÈÝÒ×ÐÞ¸ÄËùÓÐÒýÆðÀàÐÍ´íÎóµÄ´úÂëÐС£Ò»µ©ÄãÍê³ÉÁËÕâЩ£¬ÄãÈ·ÐÅÒѾ­·¢ÏÖÁËËùÓÐÐèÒªÐ޸ĵĵط½¡£¶ÔÆäËûµÄ¼òµ¥Öع¹£¬Èç¸Ä±ä·½·¨Ãû»ò°Ñ·½·¨´ÓÒ»¸öÀàÒÆµ½ÁíÒ»¸ö£¬ÕâÖÖÈ·ÐŶ¼ÓÐЧ¡£ËùÓÐÀý×ÓÖо²Ì¬ÀàÐͼì²é»áÌṩ×ã¹»µÄÈ·ÈÏ£¬±íÃ÷ÐÂϵͳºÍ¾Éϵͳ¿ÉÒÔÒ»ÑùµÄ¹¤×÷¡£
Îĵµ¡£¾²Ì¬ÀàÐÍÊDZ»±àÒëÆ÷¼ì²é¹ýÕýÈ·ÐԵijÌÐòÎĵµ¡£²»ÏñÆÕͨµÄ×¢ÊÍ£¬ÀàÐͱê×¢ÓÀÔ¶¶¼²»»á¹ýÆÚ£¨ÖÁÉÙÈç¹û°üº¬ËüµÄÔ´Îļþ½üÆÚ¸Õ¸Õͨ¹ý±àÒë¾Í²»»á£©¡£¸ü½øÒ»²½Ëµ£¬±àÒëÆ÷ºÍ¼¯³É¿ª·¢»·¾³¿ÉÒÔÀûÓÃÀàÐͱê×¢Ìṩ¸üºÃµÄÉÏÏÂÎİïÖú¡£¾ÙÀýÀ´Ëµ£¬¼¯³É¿ª·¢»·¾³¿ÉÒÔͨ¹ýÅж¨Ñ¡Öбí´ïʽµÄ¾²Ì¬ÀàÐÍ£¬ÕÒµ½ÀàÐ͵ÄËùÓгÉÔ±£¬²¢È«²¿ÏÔʾ³öÀ´¡£
    ËäÈ»¾²Ì¬ÀàÐͶԳÌÐòÎĵµÀ´ËµÍ¨³£ºÜÓÐÓ㬵±ËüÃÇŪÂÒ³ÌÐòʱ£¬Ò²»áÏԵúÜÌÖÑá¡£±ê×¼ÒâÒåÉÏÀ´Ëµ£¬ÓÐÓõÄÎĵµÊÇÄÇЩ³ÌÐòµÄ¶ÁÕß²»¿ÉÄܺÜÈÝÒ׵شӳÌÐòÖÐ×Ô¼ºÏë³öÀ´µÄ¡£ÔÚÈçϵķ½
           def f(x: String) = ...
    ÖªµÀfµÄ±äÁ¿Ó¦¸ÃÊÇStringÊÇÓÐÓõġ£ÁíÒ»·½Ã棬ÒÔÏÂÀý×ÓÖÐÁ½¸ö±ê×¢ÖÁÉÙÓÐÒ»¸öÊÇÌÖÑáµÄ£º
           val x: HashMap[Int, String] = new HashMap[Int, String]()
    ºÜÃ÷ÏÔ£¬xÊÇÒÔIntΪ¼ü£¬StringΪֵµÄHashMapÕâ¾ä»°ËµÒ»±é¾Í¹»ÁË£»Ã»±ØÒªÍ¬ÑùµÄ¾ä×ÓÖØ¸´Á½±é¡£
    ScalaÓзdz£¾«Óڴ˵ÀµÄÀàÐÍÍÆ¶Ïϵͳ£¬ÄÜÈÃÄãÊ¡ÂÔ¼¸ºõËùÓеÄͨ³£±»ÈÏΪÊÇÌÖÑáµÄÀàÐÍÐÅÏ¢¡£ÔÚÉÏÀýÖУ¬ÒÔÏÂÁ½¸ö²»Ì«ÌÖÑáµÄÌæ´úÆ·Ò²ÄÜÒ»Ñù¹¤×÷£º
          val x = new HashMap[Int, String]()
          val x: Map[Int, String] = new HashMap()
     ScalaÀïµÄÀàÐÍÍÆ¶Ï¿ÉÒÔ×ߵĺÜÔ¶¡£Êµ¼ÊÉÏ£¬¾ÍËãÓû§´úÂëË¿ºÁûÓÐÏÔʽÀàÐÍÒ²²»Ï¡Ææ¡£Òò´Ë£¬Scala±à³Ì¾­³£¿´ÉÏÈ¥ÓеãÏñÊǶ¯Ì¬ÀàÐͽű¾ÓïÑÔд³öÀ´µÄ³ÌÐò¡£ÓÈÆäÏÔÖø±íÏÖÔÚ×÷Ϊճ½ÓÒÑдÍêµÄ¿â¿Ø¼þµÄ¿Í»§Ó¦ÓôúÂëÉÏ¡£¶ø¶Ô¿â¿Ø¼þÀ´Ëµ²»ÊÇÕâô»ØÊ£¬ÒòΪËüÃdz£³£Óõ½Ï൱¾«ÃîµÄÀàÐÍȥʹÆäÊÊÓÚÁé»îʹÓõÄģʽ¡£ÕâºÜ×ÔÈ»¡£×ÛÉÏ£¬¹¹³É¿ÉÖØÓÿؼþ½Ó¿ÚµÄ³ÉÔ±µÄÀàÐÍ·ûºÅÓ¦¸ÃÊÇÏÔʽ¸ø³öµÄ£¬ÒòΪËüÃǹ¹³ÉÁ˿ؼþºÍËüµÄʹÓÃÕß¼äÆõÔ¼µÄÖØÒª²¿·Ö¡£


¶þάÂë

ɨÂë¼ÓÎÒ À­ÄãÈëȺ

Çë×¢Ã÷£ºÐÕÃû-¹«Ë¾-ְλ

ÒÔ±ãÉóºË½øÈº×ʸñ£¬Î´×¢Ã÷Ôò¾Ü¾ø

¹Ø¼ü´Ê£ºSCALA Programming conversion Character interface ÑÇÂíÑ· Javaƽ̨ ±à³ÌÓïÑÔ ³ÌÐòÔ± ¼æÈÝÐÔ

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ÎÒҪע²á

±¾°æÎ¢ÐÅȺ
jg-xs1
À­Äú½ø½»Á÷Ⱥ
GMT+8, 2025-12-26 21:54