I坐标

博客园 首页 新随笔 联系 订阅 管理
Basic Slice Types基本Slice类型

Slice提供了一些内置的基本类型,如下所示,括号中的数字表示指数:



类型 取值范围 大小
bool false / true 没指定
byte -128 to 127(0 - 255) >=8bits
short -2(15) to 2(15) - 1 >=16bits
int -2(31) to 2(31) - 1 >=32bits
long -2(63) to 2(63) - 1 >=64bits
float IEEE single标准 >=32bits
double IEEE double标准 >=64bits
string 所有的Unicode字符, 除了所有位为0的字符 变长

其中的byte类型的最大取值范围根据实际的语言决定。



当数据类型在服务器和客户端之间传递时,除了byte类型之外的数据类型都根据实际情况在变化。例如:一个long类型的值在从一台little-endian机器传递到bit-endian机器时会发生位变换。类似的,string在从EBCDIC发往ASCII时也是发生ibanhua的,也许string的字符的尺寸也发生了变化,因为不是所有的机器都使用8位的字符。实际上,这些变化对于程序员来说都是透明的,而且会严格按照需要来变化。



整数类形(integer types)



Slice提供了如下的整数类型:



  • short,16位
  • int,32位
  • long,64位

不过,这些类型在某些机器上会映射到更宽的原生类型。需要注意的是那些无符号类型Slice并没有提供。因为无符号类型影射到那些没有原生的无符号类型的语言相当困难,例如Java。



浮点数类型(floating-point types)



浮点数类型遵循IEEE的规范。如果一个实现语言么有支持IEEE的浮点数格式,Ice运行时会将浮点数值转换为原生浮点数表示。



字符串(strings)



Slice字符串使用Unicode字符集。唯一的不能出现在字符串中的字符就是零字符。



Slice没有null字符串的概念。这是因为null字符串很难映射到不直接支持null字符串概念的语言上,例如Python。不要设计依靠一个null字符串来表示“不在那里”的语义的接口。如果你需要表示可选的串,可以通过使用类,字符串的序列,或者一个空的字符串来表示null字符串。



布尔类型(booleans)



布尔类型的值只能由false和true。如果语言映射时有原生布尔类型,语言映射就会使用该类型。



Byte类型(bytes)



Slice定义byte是一个至少8位的,在地址空间中传递时保证不会发生变化的类型。保证不发生变化就允许交换二进制数据,而这些数据不会被篆改。其他的Slice类型都会在传递过程中会被改变表达形式。



posted on 2005-01-19 14:03  I坐标  阅读(1748)  评论(0编辑  收藏  举报