静态类型

静态类型

静态类型允许开发人员声明和使用 c. 变量中可用的某些变量类型, 一旦它们被声明为静态类型, 就不能更改它们的类型。 但是,它们允许编译器做更好的优化工作。 支持以下类型:

类型说明
array可以用作散列、映射、字典、集合、堆栈等的结构。
boolean布尔值表示真值。 它可以是true或false。
char能包含基本字符集的机器的最小可寻址单元。
float/double双精度浮点型。 大小依赖于平台。
integer带符号的整形 至少16位的大小。
long长有符号整数类型。 至少32位。
string字符串是一系列字符,其中字符与字节相同。
unsigned char与char大小相同,但保证是无符号的。
unsigned integer无符号整数 至少16位的大小。
unsigned long与long相同,但无符号。

Boolean

一个boolean表示一个真假。 它可以是true或false。 与上面详细描述的动态行为相反,静态布尔值类型仍然是布尔值 (true或false),不管赋予它们什么值:

boolean a;
let a = true;
自动转换为true
let a = 100;
自动转换为false
let a = 0;
抛出编译器异常
let a = "hello";

字符/无符号字符

char变量是机器中能够包含基本字符集(通常是8位) 的最小可寻址单元。 char变量是机器中能够包含基本字符集(通常是8位) 的最小可寻址单元。

char ch, string name = "peter";
stores ‘t’
let ch = name[2];
char文字必须用单引号括起来
let ch = 'Z';
```zephir

<a name='static-types-integer-unsigned'></a>
### Integer/Unsigned Integer
`integer` values are like the `integer` member in dynamic values. Values assigned to integer variables remain integer:

```zephir
int a;

let a = 50,
    a = -70;
自动转换为100
let a = 100.25;
自动转换为0
let a = null;
自动转换为0
let a = false;
抛出编译器异常
let a = "hello";

unsigned integer变量类似于integer但它们没有符号,这意味着你不能在这些变量中存储负数:

uint a;

let a = 50;
自动转换为70
let a = -70;
自动转换为100
let a = 100.25;
自动转换为0
let a = null;
自动转换为0
let a = false;
抛出编译器异常
let a = "hello";

< 0>unsigned integer</0 > 变量比标准 integer 大两倍。 将 unsigned integer</0 > 分配给标准 (有符号) <code>integer 可能会导致数据丢失:

b 的数据可能丢失
uint a, int b;

let a = 2147483648,
    b = a;

长值/无符号长值

long 变量比 integer 变量大两倍, 因此它们可以存储较大的数字。 与 integer 一样, 分配给 long 变量的值将自动转换为此类型:

long a;

let a = 50,
    a = -70;
自动转换为100
let a = 100.25;
自动转换为0
    let a = null;
自动转换为0
let a = false;
抛出编译器异常
let a = "hello";

< 0>unsigned long</0 > 类似 long 但它们没有符号, 这意味着您不能将负数存储在以下类型的变量中:

ulong a;

let a = 50;
自动转换为70
let  a = -70;
自动转换为100
let a = 100.25;
自动转换为0
let a = null;
自动转换为0
let a = false;
抛出编译器异常
let a = "hello";

< 0>unsigned long </0 > 变量比标准 long 大两倍; 将 unsigned long</0 > 分配给标准 (有符号) <code>long 可能会导致数据丢失:

b 的数据可能丢失
ulong a, long b;

let a = 4294967296,
    b = a;

String

一个string是一系列字符,其中字符与字节相同。 与PHP一样,Zephir只支持256个字符集,因此不提供本地Unicode支持。

当一个变量被声明为string时,它永远不会改变它的类型:

string a;

let a = "";
string 文字必须用双引号括起来
let  a = "hello";
转换为字符串“A”
let a = 'A';
自动转换为””
let a = null;
暂无相关搜索结果!