如何快速刪除list中的最后一個元素?


(前言: 在項目中,在統計在線用戶量及其行為方式的時候,想在項目如“/bob/recode/online”,結果發現:把寫日志的東西放到了ebin文件下,即:/bob/ebin/report/online,於是,想着截取掉“ebin”,這樣就可以達到在要求,即:”/bob/report/online“.)

     再回到題目上來,刪除list中的最后一個元素,看下面:

 可以使用lists:sublist(L,1,length(L)-1).  

    1>lists:sublist("12345",1,length("12345")-1).

     "1234"

2>L = [[12345],2,3].

  [[12345],2,3]

3>lists:sublist(L,1,length(L)-1).

  [[12345],2]

下面的三種方式都可以實現:刪除list中的最后一個元素:

 1). LResult = lists:sublist(L,1,length(L)-1).

 2). {LResult,_} = lists:split(length(L)-1,L).

 3). LResult = lists:foldr(fun(E,first) —> [ ];(E,Acc)when is_list(Acc) —> [E | Acc] end.first,L).

 

再回到項目上來,這樣想刪除后面的是最后一個還是倒數第幾個就都可以實現了.

 

PS:三下五除二,寫完了,被老大說了,說是這么寫,路徑就在源文件中了.erl中了,而如果客戶想改變存放路徑則很難實現,因為源碼是不給的。

 於是,又寫了第二種寫文件的方法。即:在配置文件中,yaws.conf中配置路徑,然后在include文件夾下的.hrl頭文件定義常量宏(define),通過頭文件的導入,在.erl源文件下得以實現.

這樣,客戶就可以通過配置文件xxx.conf來進行隨意更改自己想要的路徑,進行存放。因為配置文件是可以給客戶的。心得:不要因為完成一個功能或者實現,就覺得萬事大吉了,需要在項目的角度,在客戶的角度進行換位思考,進行編碼實現功能。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM