\u4ecb\u7ecd<\/strong><\/h3> \n Scala\u63d0\u4f9b\u7684\u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570\u529f\u80fd\uff0c\u662f\u975e\u5e38\u6709\u7279\u8272\u7684\u529f\u80fd\u3002\u662f<\/span>Java<\/span>\u7b49\u7f16\u7a0b\u8bed\u8a00\u6240\u6ca1\u6709\u7684\u529f\u80fd\u3002\u5b83\u53ef\u4ee5\u5141\u8bb8\u4f60\u624b\u52a8\u6307\u5b9a\uff0c\u5c06\u67d0\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61\u8f6c\u6362\u6210\u5176\u4ed6\u7c7b\u578b\u7684\u5bf9\u8c61\u3002\u901a\u8fc7\u8fd9\u4e9b\u529f\u80fd\uff0c\u53ef\u4ee5\u5b9e\u73b0\u975e\u5e38\u5f3a\u5927\uff0c\u800c\u4e14\u7279\u6b8a\u7684\u529f\u80fd\u3002<\/span><\/p> \n <\/p> \n
Scala\u7684\u9690\u5f0f\u8f6c\u6362\uff0c\u5176\u5b9e\u6700\u6838\u5fc3\u7684\u5c31\u662f\u5b9a\u4e49\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u5373<\/span>implicit conversion function<\/span>\u3002\u5b9a\u4e49\u7684\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u53ea\u8981\u5728\u7f16\u5199\u7684\u7a0b\u5e8f\u5185\u5f15\u5165\uff0c\u5c31\u4f1a\u88ab<\/span>Scala<\/span>\u81ea\u52a8\u4f7f\u7528\u3002<\/span>Scala<\/span>\u4f1a\u6839\u636e\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u7b7e\u540d\uff0c\u5728\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u5230\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u63a5\u6536\u7684\u53c2\u6570\u7c7b\u578b\u5b9a\u4e49\u7684\u5bf9\u8c61\u65f6\uff0c\u4f1a\u81ea\u52a8\u5c06\u5176\u4f20\u5165\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u8f6c\u6362\u4e3a\u53e6\u5916\u4e00\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61\u5e76\u8fd4\u56de\u3002\u8fd9\u5c31\u662f<\/span>\u201c<\/span>\u9690\u5f0f\u8f6c\u6362<\/span>\u201d<\/span>\u3002<\/span><\/p> \n <\/p> \n
\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u53eb\u4ec0\u4e48\u540d\u5b57\u662f\u65e0\u6240\u8c13\u7684\uff0c\u56e0\u4e3a\u901a\u5e38\u4e0d\u4f1a\u7531\u7528\u6237\u624b\u52a8\u8c03\u7528\uff0c\u800c\u662f\u7531<\/span>Scala\u8fdb\u884c\u8c03\u7528\u3002\u4f46\u662f\u5982\u679c\u8981\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\uff0c\u5219\u9700\u8981\u5bf9\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u8fdb\u884c\u5bfc\u5165\u3002\u56e0\u6b64\u901a\u5e38\u5efa\u8bae\u5c06\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u540d\u79f0\u547d\u540d\u4e3a<\/span>\u201cone2one\u201d<\/span>\u7684\u5f62\u5f0f\u3002<\/span><\/p> \n <\/p> \n
Spark\u6e90\u7801\u4e2d\u6709\u5927\u91cf\u7684\u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570\uff0c\u56e0\u6b64\u5fc5\u987b\u7cbe\u901a\u8fd9\u79cd\u8bed\u6cd5\u3002<\/span><\/p> \n <\/p> \n
<\/p> \n
\u77e5\u8bc6\u70b9<\/strong><\/h3> \n 1\u3001\u9690\u5f0f\u8f6c\u6362\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff09<\/span><\/p> \n 2\u3001\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b\uff08\u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab\uff09<\/span><\/p> \n 3\u3001\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u4f5c\u7528\u57df\u4e0e\u5bfc\u5165<\/span><\/p> \n 4\u3001\u9690\u5f0f\u8f6c\u6362\u7684\u53d1\u751f\u65f6\u673a\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248\uff09<\/span><\/p> \n 5\u3001\u9690\u5f0f\u53c2\u6570\uff08\u6848\u4f8b\uff1a\u8003\u8bd5\u7b7e\u5230\uff09<\/span><\/p> \n <\/p> \n
<\/p> \n
\u9690\u5f0f\u8f6c\u6362<\/strong><\/h3> \n <\/p> \n
\/\/ \u8981\u5b9e\u73b0\u9690\u5f0f\u8f6c\u6362\uff0c\u53ea\u8981\u7a0b\u5e8f\u53ef\u89c1\u7684\u8303\u56f4\u5185\u5b9a\u4e49\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u5373\u53ef\u3002<\/span>Scala<\/span>\u4f1a\u81ea\u52a8\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u3002\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u4e0e\u666e\u901a\u51fd\u6570\u552f\u4e00\u7684\u8bed\u6cd5\u533a\u522b\u5c31\u662f\uff0c\u8981\u4ee5<\/span>implicit<\/span>\u5f00\u5934\uff0c\u800c\u4e14\u6700\u597d\u8981\u5b9a\u4e49\u51fd\u6570\u8fd4\u56de\u7c7b\u578b\u3002<\/span><\/p> \n <\/p> \n
\/\/ \u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff08\u53ea\u63a5\u53d7\u7279\u6b8a\u4eba\u7fa4\uff0c\u6bd4\u5982\u5b66\u751f\u3001\u8001\u4eba\u7b49\uff09<\/span><\/p> \n class SpecialPerson(val name: String)<\/p> \n
class Student(val name: String)<\/p> \n
class Older(val name: String)<\/p> \n
<\/p> \n
implicit def object2SpecialPerson (obj: Object): SpecialPerson = {<\/p> \n
if (obj.getClass == classOf[Student]) { val stu = obj.asInstanceOf[Student]; new SpecialPerson(stu.name) }<\/p> \n
else if (obj.getClass == classOf[Older]) { val older = obj.asInstanceOf[Older]; new SpecialPerson(older.name) }<\/p> \n
else Nil<\/p> \n
}<\/p> \n
<\/p> \n
var ticketNumber = 0<\/p> \n
def buySpecialTicket(p: SpecialPerson) = {<\/p> \n
ticketNumber += 1<\/p> \n
"T-" + ticketNumber<\/p> \n
}<\/p> \n
<\/p> \n
\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b<\/strong><\/h3> \n <\/p> \n
<\/p> \n
\/\/ \u9690\u5f0f\u8f6c\u6362\u975e\u5e38\u5f3a\u5927\u7684\u4e00\u4e2a\u529f\u80fd\uff0c\u5c31\u662f\u53ef\u4ee5\u5728\u4e0d\u77e5\u4e0d\u89c9\u4e2d\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b\u7684\u529f\u80fd\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u53ef\u4ee5\u4e3a\u67d0\u4e2a\u7c7b\u5b9a\u4e49\u4e00\u4e2a\u52a0\u5f3a\u7248\u7684\u7c7b\uff0c\u5e76\u5b9a\u4e49\u4e92\u76f8\u4e4b\u95f4\u7684\u9690\u5f0f\u8f6c\u6362\uff0c\u4ece\u800c\u8ba9\u6e90\u7c7b\u5728\u4f7f\u7528\u52a0\u5f3a\u7248\u7684\u65b9\u6cd5\u65f6\uff0c\u7531<\/span>Scala<\/span>\u81ea\u52a8\u8fdb\u884c\u9690\u5f0f\u8f6c\u6362\u4e3a\u52a0\u5f3a\u7c7b\uff0c\u7136\u540e\u518d\u8c03\u7528\u8be5\u65b9\u6cd5\u3002<\/span><\/p> \n <\/p> \n
\/\/ \u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab<\/span><\/p> \n <\/p> \n
class Man(val name: String)<\/p> \n
class Superman(val name: String) {<\/p> \n
def emitLaser = println("emit a laster!")<\/p> \n
}<\/p> \n
<\/p> \n
implicit def man2superman(man: Man): Superman = new Superman(man.name)<\/p> \n
<\/p> \n
val leo = new Man("leo")<\/p> \n
leo.emitLaser<\/p> \n
<\/p> \n
<\/p> \n
<\/p> \n
\u9690\u5f0f\u8f6c\u6362\u7684\u53d1\u751f\u65f6\u673a<\/strong><\/h3> \n <\/p> \n
\/\/ 1\u3001\u8c03\u7528\u67d0\u4e2a\u51fd\u6570\uff0c\u4f46\u662f\u7ed9\u51fd\u6570\u4f20\u5165\u7684\u53c2\u6570\u7684\u7c7b\u578b\uff0c\u4e0e\u51fd\u6570\u5b9a\u4e49\u7684\u63a5\u6536\u53c2\u6570\u7c7b\u578b\u4e0d\u5339\u914d\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff09<\/span><\/p> \n \/\/ 2\u3001\u4f7f\u7528\u67d0\u4e2a\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u8c03\u7528\u67d0\u4e2a\u65b9\u6cd5\uff0c\u800c\u8fd9\u4e2a\u65b9\u6cd5\u5e76\u4e0d\u5b58\u5728\u4e8e\u8be5\u7c7b\u578b\u65f6\uff08\u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab\uff09<\/span><\/p> \n \/\/ 3\u3001\u4f7f\u7528\u67d0\u4e2a\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u8c03\u7528\u67d0\u4e2a\u65b9\u6cd5\uff0c\u867d\u7136\u8be5\u7c7b\u578b\u6709\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u4f46\u662f\u7ed9\u65b9\u6cd5\u4f20\u5165\u7684\u53c2\u6570\u7c7b\u578b\uff0c\u4e0e\u65b9\u6cd5\u5b9a\u4e49\u7684\u63a5\u6536\u53c2\u6570\u7684\u7c7b\u578b\u4e0d\u5339\u914d\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248\uff09<\/span><\/p> \n <\/p> \n
\/\/ \u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248<\/span><\/p> \n class TicketHouse {<\/p> \n
var ticketNumber = 0<\/p> \n
def buySpecialTicket(p: SpecialPerson) = {<\/p> \n
ticketNumber += 1<\/p> \n
"T-" + ticketNumber<\/p> \n
}<\/p> \n
}<\/p> \n
<\/p> \n
<\/p> \n
\u9690\u5f0f\u53c2\u6570<\/strong><\/h3> \n \/\/ \u6240\u8c13\u7684\u9690\u5f0f\u53c2\u6570\uff0c\u6307\u7684\u662f\u5728\u51fd\u6570\u6216\u8005\u65b9\u6cd5\u4e2d\uff0c\u5b9a\u4e49\u4e00\u4e2a\u7528<\/span>implicit<\/span>\u4fee\u9970\u7684\u53c2\u6570\uff0c\u6b64\u65f6<\/span>Scala<\/span>\u4f1a\u5c1d\u8bd5\u627e\u5230\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\uff0c\u7528<\/span>implicit<\/span>\u4fee\u9970\u7684\u5bf9\u8c61\uff0c\u5373\u9690\u5f0f\u503c\uff0c\u5e76\u6ce8\u5165\u53c2\u6570\u3002<\/span><\/p> \n \/\/ Scala\u4f1a\u5728\u4e24\u4e2a\u8303\u56f4\u5185\u67e5\u627e\uff1a\u4e00\u79cd\u662f\u5f53\u524d\u4f5c\u7528\u57df\u5185\u53ef\u89c1\u7684<\/span>val<\/span>\u6216<\/span>var<\/span>\u5b9a\u4e49\u7684\u9690\u5f0f\u53d8\u91cf\uff1b\u4e00\u79cd\u662f\u9690\u5f0f\u53c2\u6570\u7c7b\u578b\u7684\u4f34\u751f\u5bf9\u8c61\u5185\u7684\u9690\u5f0f\u503c<\/span><\/p> \n <\/p> \n
\/\/ \u6848\u4f8b\uff1a\u8003\u8bd5\u7b7e\u5230<\/span><\/p> \n class SignPen {<\/p> \n
def write(content: String) = println(content)<\/p> \n
}<\/p> \n
implicit val signPen = new SignPen<\/p> \n
<\/p> \n
def signForExam(name: String) (implicit signPen: SignPen) {<\/p> \n
signPen.write(name + " come to exam in time.")<\/p> \n
}<\/p> \n
<\/p> \n<\/div>","orderid":"0","title":"Scala \u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570","smalltitle":"","mid":"0","fname":"Scala","special_id":"0","bak_id":"0","info":"0","hits":"193","pages":"1","comments":"0","posttime":"2019-09-04 00:59:50","list":"1567529990","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Scala<\/A> \u8f6c\u6362<\/A> \u53c2\u6570<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"120.229.33.222","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Scala \u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570","lastview":"1711672336","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}
<\/p> \n
Scala\u7684\u9690\u5f0f\u8f6c\u6362\uff0c\u5176\u5b9e\u6700\u6838\u5fc3\u7684\u5c31\u662f\u5b9a\u4e49\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u5373<\/span>implicit conversion function<\/span>\u3002\u5b9a\u4e49\u7684\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u53ea\u8981\u5728\u7f16\u5199\u7684\u7a0b\u5e8f\u5185\u5f15\u5165\uff0c\u5c31\u4f1a\u88ab<\/span>Scala<\/span>\u81ea\u52a8\u4f7f\u7528\u3002<\/span>Scala<\/span>\u4f1a\u6839\u636e\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u7b7e\u540d\uff0c\u5728\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u5230\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u63a5\u6536\u7684\u53c2\u6570\u7c7b\u578b\u5b9a\u4e49\u7684\u5bf9\u8c61\u65f6\uff0c\u4f1a\u81ea\u52a8\u5c06\u5176\u4f20\u5165\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\uff0c\u8f6c\u6362\u4e3a\u53e6\u5916\u4e00\u79cd\u7c7b\u578b\u7684\u5bf9\u8c61\u5e76\u8fd4\u56de\u3002\u8fd9\u5c31\u662f<\/span>\u201c<\/span>\u9690\u5f0f\u8f6c\u6362<\/span>\u201d<\/span>\u3002<\/span><\/p> \n <\/p> \n \u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u53eb\u4ec0\u4e48\u540d\u5b57\u662f\u65e0\u6240\u8c13\u7684\uff0c\u56e0\u4e3a\u901a\u5e38\u4e0d\u4f1a\u7531\u7528\u6237\u624b\u52a8\u8c03\u7528\uff0c\u800c\u662f\u7531<\/span>Scala\u8fdb\u884c\u8c03\u7528\u3002\u4f46\u662f\u5982\u679c\u8981\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\uff0c\u5219\u9700\u8981\u5bf9\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u8fdb\u884c\u5bfc\u5165\u3002\u56e0\u6b64\u901a\u5e38\u5efa\u8bae\u5c06\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u540d\u79f0\u547d\u540d\u4e3a<\/span>\u201cone2one\u201d<\/span>\u7684\u5f62\u5f0f\u3002<\/span><\/p> \n <\/p> \n Spark\u6e90\u7801\u4e2d\u6709\u5927\u91cf\u7684\u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570\uff0c\u56e0\u6b64\u5fc5\u987b\u7cbe\u901a\u8fd9\u79cd\u8bed\u6cd5\u3002<\/span><\/p> \n <\/p> \n <\/p> \n 1\u3001\u9690\u5f0f\u8f6c\u6362\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff09<\/span><\/p> \n 2\u3001\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b\uff08\u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab\uff09<\/span><\/p> \n 3\u3001\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u7684\u4f5c\u7528\u57df\u4e0e\u5bfc\u5165<\/span><\/p> \n 4\u3001\u9690\u5f0f\u8f6c\u6362\u7684\u53d1\u751f\u65f6\u673a\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248\uff09<\/span><\/p> \n 5\u3001\u9690\u5f0f\u53c2\u6570\uff08\u6848\u4f8b\uff1a\u8003\u8bd5\u7b7e\u5230\uff09<\/span><\/p> \n <\/p> \n <\/p> \n <\/p> \n \/\/ \u8981\u5b9e\u73b0\u9690\u5f0f\u8f6c\u6362\uff0c\u53ea\u8981\u7a0b\u5e8f\u53ef\u89c1\u7684\u8303\u56f4\u5185\u5b9a\u4e49\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u5373\u53ef\u3002<\/span>Scala<\/span>\u4f1a\u81ea\u52a8\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u3002\u9690\u5f0f\u8f6c\u6362\u51fd\u6570\u4e0e\u666e\u901a\u51fd\u6570\u552f\u4e00\u7684\u8bed\u6cd5\u533a\u522b\u5c31\u662f\uff0c\u8981\u4ee5<\/span>implicit<\/span>\u5f00\u5934\uff0c\u800c\u4e14\u6700\u597d\u8981\u5b9a\u4e49\u51fd\u6570\u8fd4\u56de\u7c7b\u578b\u3002<\/span><\/p> \n <\/p> \n \/\/ \u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff08\u53ea\u63a5\u53d7\u7279\u6b8a\u4eba\u7fa4\uff0c\u6bd4\u5982\u5b66\u751f\u3001\u8001\u4eba\u7b49\uff09<\/span><\/p> \n class SpecialPerson(val name: String)<\/p> \n class Student(val name: String)<\/p> \n class Older(val name: String)<\/p> \n <\/p> \n implicit def object2SpecialPerson (obj: Object): SpecialPerson = {<\/p> \n if (obj.getClass == classOf[Student]) { val stu = obj.asInstanceOf[Student]; new SpecialPerson(stu.name) }<\/p> \n else if (obj.getClass == classOf[Older]) { val older = obj.asInstanceOf[Older]; new SpecialPerson(older.name) }<\/p> \n else Nil<\/p> \n }<\/p> \n <\/p> \n var ticketNumber = 0<\/p> \n def buySpecialTicket(p: SpecialPerson) = {<\/p> \n ticketNumber += 1<\/p> \n "T-" + ticketNumber<\/p> \n }<\/p> \n <\/p> \n <\/p> \n <\/p> \n \/\/ \u9690\u5f0f\u8f6c\u6362\u975e\u5e38\u5f3a\u5927\u7684\u4e00\u4e2a\u529f\u80fd\uff0c\u5c31\u662f\u53ef\u4ee5\u5728\u4e0d\u77e5\u4e0d\u89c9\u4e2d\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b\u7684\u529f\u80fd\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u53ef\u4ee5\u4e3a\u67d0\u4e2a\u7c7b\u5b9a\u4e49\u4e00\u4e2a\u52a0\u5f3a\u7248\u7684\u7c7b\uff0c\u5e76\u5b9a\u4e49\u4e92\u76f8\u4e4b\u95f4\u7684\u9690\u5f0f\u8f6c\u6362\uff0c\u4ece\u800c\u8ba9\u6e90\u7c7b\u5728\u4f7f\u7528\u52a0\u5f3a\u7248\u7684\u65b9\u6cd5\u65f6\uff0c\u7531<\/span>Scala<\/span>\u81ea\u52a8\u8fdb\u884c\u9690\u5f0f\u8f6c\u6362\u4e3a\u52a0\u5f3a\u7c7b\uff0c\u7136\u540e\u518d\u8c03\u7528\u8be5\u65b9\u6cd5\u3002<\/span><\/p> \n <\/p> \n \/\/ \u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab<\/span><\/p> \n <\/p> \n class Man(val name: String)<\/p> \n class Superman(val name: String) {<\/p> \n def emitLaser = println("emit a laster!")<\/p> \n }<\/p> \n <\/p> \n implicit def man2superman(man: Man): Superman = new Superman(man.name)<\/p> \n <\/p> \n val leo = new Man("leo")<\/p> \n leo.emitLaser<\/p> \n <\/p> \n <\/p> \n <\/p> \n <\/p> \n \/\/ 1\u3001\u8c03\u7528\u67d0\u4e2a\u51fd\u6570\uff0c\u4f46\u662f\u7ed9\u51fd\u6570\u4f20\u5165\u7684\u53c2\u6570\u7684\u7c7b\u578b\uff0c\u4e0e\u51fd\u6570\u5b9a\u4e49\u7684\u63a5\u6536\u53c2\u6570\u7c7b\u578b\u4e0d\u5339\u914d\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\uff09<\/span><\/p> \n \/\/ 2\u3001\u4f7f\u7528\u67d0\u4e2a\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u8c03\u7528\u67d0\u4e2a\u65b9\u6cd5\uff0c\u800c\u8fd9\u4e2a\u65b9\u6cd5\u5e76\u4e0d\u5b58\u5728\u4e8e\u8be5\u7c7b\u578b\u65f6\uff08\u6848\u4f8b\uff1a\u8d85\u4eba\u53d8\u8eab\uff09<\/span><\/p> \n \/\/ 3\u3001\u4f7f\u7528\u67d0\u4e2a\u7c7b\u578b\u7684\u5bf9\u8c61\uff0c\u8c03\u7528\u67d0\u4e2a\u65b9\u6cd5\uff0c\u867d\u7136\u8be5\u7c7b\u578b\u6709\u8fd9\u4e2a\u65b9\u6cd5\uff0c\u4f46\u662f\u7ed9\u65b9\u6cd5\u4f20\u5165\u7684\u53c2\u6570\u7c7b\u578b\uff0c\u4e0e\u65b9\u6cd5\u5b9a\u4e49\u7684\u63a5\u6536\u53c2\u6570\u7684\u7c7b\u578b\u4e0d\u5339\u914d\uff08\u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248\uff09<\/span><\/p> \n <\/p> \n \/\/ \u6848\u4f8b\uff1a\u7279\u6b8a\u552e\u7968\u7a97\u53e3\u52a0\u5f3a\u7248<\/span><\/p> \n class TicketHouse {<\/p> \n var ticketNumber = 0<\/p> \n def buySpecialTicket(p: SpecialPerson) = {<\/p> \n ticketNumber += 1<\/p> \n "T-" + ticketNumber<\/p> \n }<\/p> \n }<\/p> \n <\/p> \n <\/p> \n \/\/ \u6240\u8c13\u7684\u9690\u5f0f\u53c2\u6570\uff0c\u6307\u7684\u662f\u5728\u51fd\u6570\u6216\u8005\u65b9\u6cd5\u4e2d\uff0c\u5b9a\u4e49\u4e00\u4e2a\u7528<\/span>implicit<\/span>\u4fee\u9970\u7684\u53c2\u6570\uff0c\u6b64\u65f6<\/span>Scala<\/span>\u4f1a\u5c1d\u8bd5\u627e\u5230\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\uff0c\u7528<\/span>implicit<\/span>\u4fee\u9970\u7684\u5bf9\u8c61\uff0c\u5373\u9690\u5f0f\u503c\uff0c\u5e76\u6ce8\u5165\u53c2\u6570\u3002<\/span><\/p> \n \/\/ Scala\u4f1a\u5728\u4e24\u4e2a\u8303\u56f4\u5185\u67e5\u627e\uff1a\u4e00\u79cd\u662f\u5f53\u524d\u4f5c\u7528\u57df\u5185\u53ef\u89c1\u7684<\/span>val<\/span>\u6216<\/span>var<\/span>\u5b9a\u4e49\u7684\u9690\u5f0f\u53d8\u91cf\uff1b\u4e00\u79cd\u662f\u9690\u5f0f\u53c2\u6570\u7c7b\u578b\u7684\u4f34\u751f\u5bf9\u8c61\u5185\u7684\u9690\u5f0f\u503c<\/span><\/p> \n <\/p> \n \/\/ \u6848\u4f8b\uff1a\u8003\u8bd5\u7b7e\u5230<\/span><\/p> \n class SignPen {<\/p> \n def write(content: String) = println(content)<\/p> \n }<\/p> \n implicit val signPen = new SignPen<\/p> \n <\/p> \n def signForExam(name: String) (implicit signPen: SignPen) {<\/p> \n signPen.write(name + " come to exam in time.")<\/p> \n }<\/p> \n <\/p> \n<\/div>","orderid":"0","title":"Scala \u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570","smalltitle":"","mid":"0","fname":"Scala","special_id":"0","bak_id":"0","info":"0","hits":"193","pages":"1","comments":"0","posttime":"2019-09-04 00:59:50","list":"1567529990","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"https:\/\/www.cppentry.com\/upload_files\/","ispic":"0","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"Scala<\/A> \u8f6c\u6362<\/A> \u53c2\u6570<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"120.229.33.222","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"Scala \u9690\u5f0f\u8f6c\u6362\u548c\u9690\u5f0f\u53c2\u6570","lastview":"1711672336","digg_num":"0","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}\u77e5\u8bc6\u70b9<\/strong><\/h3> \n
\u9690\u5f0f\u8f6c\u6362<\/strong><\/h3> \n
\u4f7f\u7528\u9690\u5f0f\u8f6c\u6362\u52a0\u5f3a\u73b0\u6709\u7c7b\u578b<\/strong><\/h3> \n
\u9690\u5f0f\u8f6c\u6362\u7684\u53d1\u751f\u65f6\u673a<\/strong><\/h3> \n
\u9690\u5f0f\u53c2\u6570<\/strong><\/h3> \n