// int装箱 此时o的类型是 obj let o = box 1 // 常规的拆箱方法是 let a = unbox<int> o let b : int = unbox o let c = o :?> int
// 如果把元组装箱呢? let o = box (1, "a") // FSI显示数据类型是 int * string // 以下三种方法都通过了 let a = unbox<int string *> o let b : (int * string) = unbox o let c = o :?> int * string
// 接下来把一个表装箱 let o = box [1; 2; 3] // 用unbox拆箱表是可行的 let a = unbox<int list> o let b : (int list) = unbox o // 但是下面这句却不行 let c = o :?> (int list)
// 感谢code17的指正 // 由于多余的括号 误把list当成了int的参数了 // 正确写法是: let c = o :?> int list