1、引數
所有引數區分大小寫。部分引數所代表的意義如下:
“%A”——對方所在地區。
“%a”——對方詳細地址。
“%I”——對方IP地址,無IP地址時為“”。
“%N”——對方暱稱。
“%n”——對方QQ號。
“%o”——對方線上狀態返回碼之一(檢測對方是否上線。1:線上,0:離線或隱身)。
“%P”——對方埠號。
“%p”——換行。
“%s”——對方線上狀態返回碼之二(檢測對方上線以後的狀態。10:線上,20:離線或隱身,30:離開)。
“%V”——對方QQ版本號,沒有測到版本號時為“<移動QQ>”。
2、運算子
“;”——註釋符,用於幫助讀懂程式碼,其後整行的字元不視為程式碼,不執行。
“=”——關係運算符,用於符號和值之間數值比較。
“()”——語句範圍符,用於限定關係式的範圍。它必須成對使用,否則將出錯。
“?”——判斷符,用於判斷邏輯關係。
“:”——轉折符,用於邏輯關係的轉折。
邏輯關係採用 x?y:z 格式的三目運算,即,當 x 成立時結果為 y,否則結果為 z。
3、程式碼解讀
下面以“訊息對話方塊傳統 IP 資訊格式”為例說明程式碼的應用。
IpFormat=(%I=)?(%o=0?(%V=<移動QQ>?%N 離線%p無法顯示其所在地區、IP地址和QQ版本號:%N 隱身上線或已下線%p%V):(%s=10?%N 線上%p:%N 離開%p)暫時未能顯示其所在地區和IP地址%p%V):(%s=20?%N 正在隱身或已下線%p:(%s=10?%N 線上%p:%N 離開%p))%A(%a=()?:%a)%p%I(%P=0?::%P)%V
上述程式碼看似複雜,其實只是簡單的三目運算,簡化如下,看得清楚些:
IpFormat=(%I=)?(%o=0?(%V=<移動QQ>?%N 離線:%N 隱身上線或已下線):%s=10?%N 線上:%N 離開):%s=20?%N 正在隱身或已下線:(%s=10?%N 線上:%N 離開)
第一層是(%I=)? 部分,就是判斷有沒有 IP 地址,是一個三目運算,有如下兩種情況:
(1)沒有 IP,就是 %I= 成立,這時執行以下程式碼:“%o=0?(%V=<移動QQ>?%N 離線:%N 隱身上線或已下線):%s=10?%N 線上:%N 離開”,具體內容下面再做解釋。
(2)有 IP,就是 %I= 不成立,這時執行剩下的程式碼:“%s=20?%N 正在隱身或已下線:(%s=10?%N 線上:%N 離開)”。
第二層之一是 %o=0? 部分,就是判斷對方是否上線,仍是一個三目運算,也有兩種情況:
(1)對方沒上線,就是 %o=0 成立,這時執行以下程式碼:“%V=<移動QQ>?%N 離線:%N 隱身上線或已下線”。
(2)對方上線,就是 %o=0 不成立,這時執行以下程式碼:“%s=10?%N 線上:%N 離開”。
第二層之二是 %s=20? 部分,就是判斷對方上線後的情況,仍是一個三目運算,也有兩種情況:
(1)對方不線上,就是 %s=20 成立,這時要麼對方隱身,要麼對方已經下線了,所以顯示對方“正在隱身或已下線”。
(2)對方線上,就是 %s=20 不成立,這時繼續執行“%s=10?%N 線上:%N 離開”。
第三層之一是 %V=<移動QQ>? 部分,就是判斷對方是否有 QQ 版本號,%V=<移動QQ>成立時,說明對方離線;%V=<移動QQ>不成立時,說明對方隱身上線或已下線。
第三層之二是 %s=10? 部分,就是判斷對方是否線上,%s=10 成立時,說明對方線上;%s=10 不成立時,說明對方離開。
未簡化前的程式碼只是在判斷了相應的線上狀態後增加了顯示所在地區、IP 地址和 QQ 版本號等內容,用 %p 換行顯示。
好了,先到這裡吧。