我可以用Int64创建数组吗?

问题描述 投票:0回答:2

我基本上想创建一个数组(Array.array(k + 1, 1)),但是由于k的类型为Int64(必须为),所以我无法创建该数组(给出错误),所以我试图找到一种绕过该错误的方法。有任何想法吗?

P.s k < 20000的值,但必须将其存储为Int64.int

sml smlnj ml
2个回答
0
投票

您可以先创建一个列表,然后进行转换。

这对我有用:

fun many (k: Int64.int) x =
    let
        fun many_h 0 xs = xs
          | many_h k xs = many_h (k-1) (x::xs)
    in
        many_h k []
    end;


- Array.fromList (many 14 1);
val it = [|1,1,1,1,1,1,1,1,1,1,1,1,...|] : int array

0
投票

只需用Int64.toInt转换为整数:

val k: Int64.int = ...
val a = Array.array (Int64.toInt k + 1, 1)
© www.soinside.com 2019 - 2024. All rights reserved.