Scalaçç¹æ§
1.é¢å对象ç¹æ§
Scalaæ¯ä¸ç§çº¯é¢å对象çè¯è¨ï¼æ¯ä¸ä¸ªå¼é½æ¯å¯¹è±¡ã对象ç
æ°æ®ç±»å以åè¡ä¸ºç±ç±»åç¹å¾ï¼Traitï¼æè¿°ãç±»æ½è±¡æºå¶çæ©å±æ两ç§éå¾ãä¸ç§éå¾æ¯å类继æ¿ï¼å¦ä¸ç§éå¾æ¯çµæ´»çæ··å
¥ï¼Mixinï¼æºå¶ãè¿ä¸¤ç§éå¾è½é¿å
å¤é继æ¿çç§ç§é®é¢ã
2.å½æ°å¼ç¼ç¨
Scalaä¹æ¯ä¸ç§å½æ°å¼è¯è¨ï¼å
¶å½æ°ä¹è½å½æå¼æ¥ä½¿ç¨ãScalaæä¾äºè½»é级çè¯æ³ç¨ä»¥å®ä¹å¿åå½æ°ï¼æ¯æé«é¶å½æ°ï¼å
许åµå¥å¤å±å½æ°ï¼å¹¶æ¯ææ¯éåãScalaçCaseClassåå
¶å
ç½®ç模å¼å¹é
ç¸å½äºå½æ°å¼
ç¼ç¨è¯è¨ä¸å¸¸ç¨ç代æ°ç±»åï¼AlgebraicTypeï¼ã
æ´è¿ä¸æ¥ï¼ç¨åºåå¯ä»¥å©ç¨Scalaç模å¼å¹é
ï¼ç¼å类似
æ£å表达å¼ç代ç å¤çXMLæ°æ®ãå¨è¿äºæ
å½¢ä¸ï¼é¡ºåºå®¹å¨çæ¨å¯¼å¼ï¼comprehensionï¼åè½å¯¹ç¼åå
¬å¼åæ¥è¯¢é常æç¨ã
ç±äºJVMä¸æ¯æå°¾é¨éå½ï¼Scalaä¹ä¸è½å®å
¨æ¯æå°¾é¨éå½ä¼åãä¸è¿ï¼å¨ç®åçæ
åµä¸ï¼Scala
ç¼è¯å¨å¯ä»¥æå°¾é¨éå½ä¼åæ循ç¯ã
4.éæç±»å
Scalaæ¯å
·å¤ç±»åç³»ç»ï¼éè¿ç¼è¯æ¶çæ£æ¥ï¼ä¿è¯ä»£ç çå®å
¨æ§åä¸è´æ§ãç±»åç³»ç»å
·ä½æ¯æ以ä¸ç¹æ§ï¼
æ³åç±»ï¼åå注éï¼VarianceAnnotationï¼ï¼ç±»å继æ¿ç»æçä¸éåä¸éï¼æç±»å«åæ½è±¡ç±»åä½ä¸ºå¯¹è±¡æåï¼å¤åç±»åï¼å¼ç¨èªå·±æ¶æ¾å¼æå®ç±»åï¼è§å¾ï¼å¤ææ¹æ³ã
5.æ©å±æ§
Scalaç设计æ¿è®¤ä¸ä¸ªäºå®ï¼å³å¨å®è·µä¸ï¼æ个é¢åç¹å®ç
åºç¨ç¨åºå¼åå¾å¾éè¦ç¹å®äºè¯¥é¢åçè¯è¨æ©å±ãScalaæä¾äºè®¸å¤ç¬ç¹çè¯è¨æºå¶ï¼å¯ä»¥ä»¥åºçå½¢å¼è½»ææ ç¼æ·»å æ°çè¯è¨ç»æï¼
ä»»ä½æ¹æ³å¯ç¨ä½åç¼æåç¼æä½ç¬¦ï¼å¯ä»¥æ ¹æ®é¢æç±»åèªå¨æé éå
ãèå使ç¨ä»¥ä¸ä¸¤ä¸ªç¹æ§ï¼ä½¿ä½ å¯ä»¥å®ä¹æ°çè¯å¥èæ é¡»æ©å±è¯æ³ä¹æ 须使ç¨å®ä¹ç±»çå
ç¼ç¨ç¹æ§ã
5.使ç¨Scalaçæ¡æ¶
Liftæ¯ä¸ä¸ªå¼æºçWebåºç¨æ¡æ¶ï¼æ¨å¨æä¾ç±»ä¼¼RubyonRailsçä¸è¥¿ãå 为Lift使ç¨äºScalaï¼æ以Liftåºç¨ç¨åºå¯ä»¥ä½¿ç¨ææçJavaåºåWeb容å¨ã
scalaè¯è¨ä¸»è¦åºç¨é¢å
calaè¿è¡äºJVMä¹ä¸ï¼å¹¶ä¸å®å¯ä»¥è®¿é®ä»»ä½çjavaç±»åºå¹¶ä¸ä¸javaæ¡æ¶è¿è¡äºæä½ï¼scalaä¹å¤§ééç¨äºjavaç±»ååç±»åºã
大æ°æ®çå¼åè¯è¨æ¯Scalaçåå ï¼
1ï¼å¤§æ°æ®çæ¬èº«æ¯è®¡ç®æ°æ®ï¼èScalaå³æé¢å对象ç»ç»é¡¹ç®å·¥ç¨çè½åï¼åæ计ç®æ°æ®çåè½ã
2ï¼ç°å¨å¤§æ°æ®äºå®ä¸ç计ç®æ åæ¡æ¶Sparkï¼å®æ¯ç¨Scalaå¼åçï¼å 为计ç®æ°æ®ï¼Scalaå®æ¯å½æ°å¼ç¼ç¨ï¼å®å®ç°ç®æ³é常ç®æ´ä¼é
ã
ä¾ï¼kafkaï¼å®æ¯ä¸ä¸ª
æ¶æ¯ä¸é´ä»¶ï¼å¦æå¤é¨æ°æ®è¦æµè¿å¤§æ°æ®ä¸å¿ï¼æ们ä¸è¬é½è¦ç¨kafkaä½
éé
å¨ï¼é£å¦æ大æ°æ®ä¸å¿ç
æ°æ®æµå°å¤é¨ï¼ä¹æ¯ç¨kafkaï¼å¦Spark计ç®çæ°æ®è¦äº¤ç»HBASEæMySqlï¼æé´æ们é½ä¼ç¨kafkaï¼ï¼å¾å¤ç大æ°æ®ç»ä»¶é½æ¯ç¨çScalaç¼åçï¼æ以ï¼å¦æä½ æ³æ为ä¸ä¸ªè¾é«çº§ç大
æ°æ®å¼åé«æï¼ä½ ä¸å®è¦ææ¡Scalaã