MasteringVFP/2/2
出自VFP Wiki
(修訂版本間差異)
小 |
小 (revert) |
||
(9個中途的修訂版本沒有顯示) | |||
第3行: | 第3行: | ||
所以在你使用 vartype() 或 type() 去看它的型態時,會是 L - Logical 型態. | 所以在你使用 vartype() 或 type() 去看它的型態時,會是 L - Logical 型態. | ||
+ | <pre> | ||
local myvar | local myvar | ||
? vartype(myvar) | ? vartype(myvar) | ||
? type('myvar') | ? type('myvar') | ||
+ | </pre> | ||
目前,你可能會觀察到的值有 : | 目前,你可能會觀察到的值有 : | ||
第93行: | 第95行: | ||
目前這部分對開發者來說,最大的好處在於 [[IntelliSense]] 和 [[Web Service]]. | 目前這部分對開發者來說,最大的好處在於 [[IntelliSense]] 和 [[Web Service]]. | ||
- | [[IntelliSense]]-在開發的時候可以幫助你,如果變數是物件的話,能立即看到這個變數有什麼Property, Methods可用. | + | *[[IntelliSense]]-在開發的時候可以幫助你,如果變數是物件的話,能立即看到這個變數有什麼Property, Methods可用. |
- | Web Service-則是由於底層的傳遞必須參考到參數的型態. | + | *[[Web Service]]-則是由於底層的傳遞必須參考到參數的型態. |
在2005年4月18日 (一) 01:40的最新修訂版本
VFP 在 6.0 以前,在變數宣告之後,是沒有資料型態可言的. 但是 VFP 會將他的預設值設定為 .F. 所以在你使用 vartype() 或 type() 去看它的型態時,會是 L - Logical 型態.
local myvar ? vartype(myvar) ? type('myvar')
目前,你可能會觀察到的值有 :
type()的傳回值 | 說明 |
---|---|
C | Character 字元型態 |
N | Numeric 數值型態(也有可能是 float單精度浮點, double雙精度浮點, 和 integer整數) |
Y | Currency 金錢 |
D | Date 日期 |
T | DateTime 日期時間 |
L | Logical 邏輯 |
M | Memo |
O | Object物件 |
G | General通用 |
S | Screen (created with SAVE SCREEN) |
U | Undefined type of expression未定義 |
vartype()的傳回值 | 說明 |
---|---|
C | Character or Memo |
N | Numeric, Integer, Float, or Double |
Y | Currency |
L | Logical |
O | Object |
G | General |
D | Date |
T | DateTime |
X | Null |
U | Unknown |
注意:vartype()與type()的用法不同,但都可以藉此知道變數的資料型態;此外傳回值也不太相同.
以比較深入的角度來看,其實 VFP 在對待任何變數時,都是認定為所謂的 Variant. Variant是一種特殊的資料型態,可以用來接收任何一種資料型態的變數. 很多 Script 都是採取同樣的認定方式,如: VB, VBScript, JavaScript, PHP...等等都是.在這邊我們就不對此部份作詳細說明,因為這部分得需要有寫過強型別語言的背景,才能比較容易體會Variant的好處與壞處.
在 VFP 7 以後,VFP開發小組對語言作了一點小小的擴充. 現在它允許你在宣告時,就指定好變數的型態.如: local myvar as string 表示 myvar 是一個字串型態的變數.
目前這部分對開發者來說,最大的好處在於 IntelliSense 和 Web Service.
- IntelliSense-在開發的時候可以幫助你,如果變數是物件的話,能立即看到這個變數有什麼Property, Methods可用.
- Web Service-則是由於底層的傳遞必須參考到參數的型態.