我曾經見過很多人用漢語拼音做變數名,包括用在資料庫中,比如資料庫名、表名、欄位名,包括用在 java/c#/c++/javascript 中。
用什麼做變數名,本無傷大雅。用漢語拼音做變數名,比用漢字作變數名,要好很多。
問題在於,漢語中,同音字太多,從漢字轉成拼音,很容易轉,很容易懂,不會產生歧義。但是讓另一個人看漢語拼音做的變數名,則需要這個人的思維中,將拼音轉換成漢字,由於同音字的大量存在,會造成理解困難、甚至理解錯誤。
同音詞舉例:
fujian, 附件/福建
shanghai, 上海/商海/傷害
biaozhi, 標誌/標緻/表侄/婊子
BYD, 比亞迪/不要爹
BMW, 寶馬車/別摸我
hanzi, 漢字/漢子
gangcai,剛才/鋼材
xinren, 信任/新人/新任
確實不適合做變數名。
相比較用漢語全拼做變數名的,更不可取的是,很多人用兩個、三個聲母字母,縮寫成一個變數,這種變數更難以理解:因為這種同音詞更多。
比如 GC, 就太多同音詞了,這是 ubuntu 的拼音IME中的:剛才/歌詞/鋼材/乾脆/高層/搞錯/觀測/剛從/過錯/光彩/蓋茨/公測/公測/棺材/共存/該村/公廁/甘草/更慘/館藏/各村/管材/告辭/故此/國粹/乾菜/國策。
這是 windows 中微軟拼音中的:高層/乾脆/剛才/光彩/甘草/故此/鋼材/歌詞/觀測/公廁/共存/果菜/告辭/館藏/滾存/幹才/供詞/高參/挂彩/過錯/估測/棺材/國策/鬼才/國粹/孤殘/骨刺/乾草/乾菜/過從/管材/跟從/高才/構詞/溝槽/怪才/穀倉/光燦/卦辭/更次/固辭/穀草/改竄/攻錯/蓋菜。
可以想象,如果一個程式員看到以 GC 拼音縮寫做變數名,是難以確定這是什麼意思的。
我建議還是堅持用英文單詞做變數名,不怕長。很多編程規則中,莫名其妙地規定,變數名不能長。問題是,如果變數名可以取短的,我們自然會取短的,比如 name; 如果變數名取短了,會引起歧義,則我們不得不用長名字,比如 user_chinese_name, user_english_name。
這不是簡單一個規則就能解決的:變數名要少於 n 個字元。
另外,變數名長了,並沒有特別明顯的壞處。現在的開發工具 IDE ,都有代碼輸入自動提示功能,並不會需要多敲多少字母。
--------------------
歡迎大家下載試用折桂單點登入系統, http://zheguisoft.com