支持
我也來談一談字符串的三個分界符。VFP的字符串界定,確實有三種形式:雙引號、單引號和方括號。
雙引號,是與所有編程語言一致的字符串標識方式,從與其他語言觀感一致的角度來說,應首選使用雙引號。其實若論按鍵,由於鍵盤上雙引號和單引號位於同一鍵上,區別僅在後者要按Shift鍵,似乎需要多按一個鍵,但實際上右Shift鍵與雙引號鍵距離相當近,可以單手操作,而且對練過打字(指法)的人來説,這根本不是什麽問題,何況需要多指操作的情況還有許多,并不單單是書寫字符串如此(打字本來就是多指并用的嘛)。所以這個不是很成立的理由,好的理由就是兼容性,不要顯得太另類。
在C、C++等語言中,以及其他許多語言中(包括C#、BASIC、Pascal等),單引號是表示字符(char)的,熟悉C/C++的人都知道,字符char類被内部表達爲整數,而字符串往往是一個字符數組,'A'和"A"的涵義是不一樣的。所以使用單引號的時候,從兼容性考慮,也要避免讓閲讀者誤會爲是字符,特別是單字符字符串。VFP并不區分單字符(char)和字符串(string),都是字符串(事實上VFP儲存的數值型數據也是以字符串形式儲存的,不是二進制,故VFP的字符運算速度相當快但數值運算較慢)。VFP的字符串和數組當從C++的vector派生而來。
方括號,從兼容性角度考慮,它也應優先表達爲數組。對數組,最好不要用圓括號(像字符串的三種表達一樣),雖然語法允許,但最好不要這樣用,因爲VFP的執行有兩種機制,解釋執行和編譯執行,對圓括號的東西,如果代碼又沒有數據類型聲明和明確定義,在編譯後,會被理解爲函數,這就是很多人經常問到數組被報未定義函數的原因。字符串用方括號,遇到内容僅是數字時恐怕就悲劇了。頻繁變換字符串標識,也影響可讀性和可理解性。
那麽,VFP爲什麽要別出心裁地允許三種字符串界定符呢?答案是它不是讓程序員有多種花巧選擇,而是有實際用途的。我們有時會遇到字符串内部出現雙引號、單引號、方括號這樣的文字符號,這個時候單一界定符就很不方便了(有辦法,但很繁瑣而且難看,類似C/C++那樣的轉義字符不是最佳方案,C#就修正了這個問題),VFP看來是完美解決這一問題的唯一語言,使用三種界定:當你在字符串内部用到雙引號,那麽這個字符串就用單引號括在最外面,反之亦然,如果兩種符號都有,那麽你還有第三種可用(不大可能這也遇到麻煩,如果有,那麽你應該去買六合彩了,中彩機會極大)。
[ 本帖最后由 TonyDeng 于 2014-2-26 03:32 编辑 ]