一个boolean
表示一个真假。 它可以是true
或false
。 与上面详细描述的动态行为相反,静态布尔值
类型仍然是布尔值
(true
或false
),不管赋予它们什么值:
自动转换为true
let a = 100;
自动转换为false
let a = 0;
抛出编译器异常
let a = "hello";
char ch, string name = "peter";
stores ‘t’
let ch = name[2];
char文字必须用单引号括起来
let ch = 'Z';
<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
但它们没有符号,这意味着你不能在这些变量中存储负数:
自动转换为70
let a = -70;
自动转换为100
let a = 100.25;
自动转换为0
let a = null;
自动转换为0
let a = false;
抛出编译器异常
< 0>unsigned integer</0 > 变量比标准 integer
大两倍。 将 unsigned integer</0 > 分配给标准 (有符号) <code>integer
可能会导致数据丢失:
b 的数据可能丢失
uint a, int b;
let a = 2147483648,
b = a;
long a;
let a = 50,
a = -70;
自动转换为100
let a = 100.25;
自动转换为0
let a = null;
自动转换为0
let a = false;
抛出编译器异常
< 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 a;
let a = "";
string 文字必须用双引号括起来
let a = "hello";
转换为字符串“A”
let a = 'A';