(前言: 在項目中,在統計在線用戶量及其行為方式的時候,想在項目如“/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來進行隨意更改自己想要的路徑,進行存放。因為配置文件是可以給客戶的。心得:不要因為完成一個功能或者實現,就覺得萬事大吉了,需要在項目的角度,在客戶的角度進行換位思考,進行編碼實現功能。