七周七語(yǔ)言(2)
這周主要看了ruby,和prolog語(yǔ)言
對(duì)于ruby語(yǔ)言,ruby是解釋型語(yǔ)言,對(duì)命令一條條解釋?zhuān)鋵?shí)個(gè)人認(rèn)為也可以先編譯,在執(zhí)行,加快效率,甚至可以和java的JIT一樣,編譯成本地語(yǔ)言,加快執(zhí)行速度。
ruby明顯特點(diǎn)就是動(dòng)態(tài)性,變量不需要定義直接可以賦值,相對(duì)與java這樣的靜態(tài)語(yǔ)言,變量需要先定義變量名和變量類(lèi)型,然后進(jìn)行賦值,而ruby就可以直接進(jìn)行賦值,賦值的過(guò)程包含在定義里面。這種特定對(duì)于開(kāi)發(fā)效率非常高,但是排錯(cuò)的情況就比較復(fù)雜。
對(duì)于里面提到的鴨子類(lèi)型,并沒(méi)有太大的感覺(jué),和接口有點(diǎn)類(lèi)似,實(shí)現(xiàn)了某一個(gè)接口的類(lèi)就具有接口的類(lèi)型,唯一不同的是ruby沒(méi)有接口,可以通過(guò)mixin機(jī)制來(lái)實(shí)現(xiàn)類(lèi)的共通屬性功能。
對(duì)于mixin機(jī)制,思路是實(shí)現(xiàn)多繼承,組合類(lèi)的功能。在java里面是沒(méi)有辦法做到多繼承的,只能實(shí)現(xiàn)多個(gè)接口。但是如果一個(gè)類(lèi)想實(shí)現(xiàn)多個(gè)其他類(lèi)的功能,其實(shí)只能通過(guò)組合的方式進(jìn)行,通過(guò)反射機(jī)制動(dòng)態(tài)的給類(lèi)增加功能,這個(gè)只能動(dòng)態(tài)的進(jìn)行。而ruby則可以通過(guò)module的方式,給類(lèi)引入新的特性。
對(duì)于元編程,這個(gè)非常有用。和我們車(chē)寫(xiě)程序的思維有點(diǎn)類(lèi)似,程序可以先分解成為幾個(gè)獨(dú)立功能,然后在細(xì)化功能。可以使用函數(shù),然后在去實(shí)現(xiàn)函數(shù),有一點(diǎn)意思,java里面是做不到的,因?yàn)閖ava沒(méi)有定義函數(shù)直接使用的花,就會(huì)報(bào)錯(cuò)。這一特性也是ruby的動(dòng)態(tài)性決定的,執(zhí)行的時(shí)候去找關(guān)聯(lián)的函數(shù)。
14年互聯(lián)網(wǎng)技術(shù)、產(chǎn)品、運(yùn)營(yíng)經(jīng)驗(yàn),前支付寶技術(shù)專(zhuān)家,互金創(chuàng)業(yè)公司CTO,大令保事業(yè)部總經(jīng)理。
在互金領(lǐng)域有比較強(qiáng)的產(chǎn)品以及運(yùn)營(yíng)經(jīng)驗(yàn),尤其擅長(zhǎng)用戶增長(zhǎng)、轉(zhuǎn)化、運(yùn)營(yíng)上的經(jīng)驗(yàn),兼具技術(shù)、產(chǎn)品、運(yùn)營(yíng)思維。
目前是云貓?jiān)鲩L(zhǎng)實(shí)驗(yàn)室 創(chuàng)始人
團(tuán)隊(duì)成員來(lái)自阿里等國(guó)內(nèi)知名互聯(lián)網(wǎng)公司,曾在互聯(lián)網(wǎng)金融、互聯(lián)網(wǎng)保險(xiǎn)、企業(yè)級(jí)SaaS等項(xiàng)目中負(fù)責(zé)用戶增長(zhǎng),團(tuán)隊(duì)管理的工作,擁有豐富的一線流量增長(zhǎng)經(jīng)驗(yàn)與實(shí)操手段。
歡迎關(guān)注我們,用技術(shù)驅(qū)動(dòng)增長(zhǎng)
浙公網(wǎng)安備 33010602011771號(hào)