日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
我看到了舊時(shí)的C語言疤痕

一個(gè)月前,我正在寫一個(gè)簡(jiǎn)單的應(yīng)用,是用ruby去讀pdf文件,不知道為什么,文件指針跑到了文件開始地址的前面。我不明白為什么會(huì)這樣。于是,像往常一樣,我到stackoverflow上發(fā)帖求助。得到的第一條回復(fù)是:

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計(jì),雷山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:雷山等地區(qū)。雷山做網(wǎng)站價(jià)格咨詢:028-86922220

“你的代碼有C語言的味道….”

有什么??進(jìn)一步的閱讀,我發(fā)現(xiàn)在ruby里有一個(gè)很方便的IO操作包,根本不需要使用getc(這是我的習(xí)慣用法)——除非在一些特殊情況下。

我想說的是,用一種新語言編程,在學(xué)會(huì)這種語言的正確語法前,你需要了解它的基本原理。當(dāng)你說“我會(huì)XXX語言”時(shí),你的意思并不是指知道它的語法。而是知道這種語言里有更好的算法實(shí)現(xiàn)方法和問題解決方案,否則,你學(xué)習(xí)這種新語言的意義在哪里呢?!

讓我們來分析一個(gè)問題,假設(shè)我們需要找到一個(gè)文件的最后一行的開始處(這是我以前做過的一個(gè)任務(wù))。

像我這樣懂得一點(diǎn)C語言的人會(huì)這樣寫:

 
 
 
  1. fseek(fp,-1,SEEK_END);
  2.                 do {
  3.                      fseek(fp,-2,SEEK_CUR);
  4.                 }while(fgetc(fp)!='\n');

用ruby也能寫出類似的代碼,讓你一個(gè)新學(xué)習(xí)ruby的C程序員來寫,他就會(huì)寫出這樣:

 
 
 
  1. i)   file.seek(-1,IO::SEEK_END)
  2.        while file.getc != "\n"
  3.              file.seek(-2,IO::SEEK_CUR)
  4.        end

但是,一個(gè)熟練的ruby程序員則會(huì)寫成這樣:

 
 
 
  1. ii)  buff = file.readlines
  2.                  file.seek(-(buff.pop).length,IO::SEEK_END)
  3.             或
  4.            iii)  lastline = Elif.open("file.txt") { |f| f.gets }
  5.              file.seek(-lastline.length, IO::SEEK_END)
  6.       

對(duì)我來說,iii)是最好的實(shí)現(xiàn)方法,它能處理大型文件,不管日后它增長(zhǎng)到多大。這個(gè)Elif工具包把文件切割成了很小的片段,把它們放到小的緩沖池里,分析完后從緩沖里清除掉。你可以看一下它的gem源文件。如果你研究源文件,你會(huì)發(fā)現(xiàn),任何一個(gè)需要使用到的字符串對(duì)象方法都使用的非常聰明。

這只是一個(gè)簡(jiǎn)單的例子,來說明改變思維習(xí)慣是如何能巨大的提高你的代碼效率。我知道,作為一個(gè)新語言學(xué)習(xí)者,學(xué)會(huì)用新的語言風(fēng)格和思維習(xí)慣編程是很困難的。 我記得當(dāng)老師在課堂上教我們匯編語言時(shí),很多人會(huì)先把作業(yè)用C語言寫成,然后再寫出匯編代碼,因?yàn)樗麄兏煜語言。但是,如果你有了一定經(jīng)驗(yàn),而你的程 序中仍然有一些老的語言的痕跡,這說明你遇到了麻煩。

所以,如果我學(xué)習(xí)一種新語言,過程會(huì)是:


分享名稱:我看到了舊時(shí)的C語言疤痕
網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/djdggpg.html