仓颉 Error:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
(创建页面,内容为“以下错误出现在仓颉 0.45.2 cjnative 版本。 ==== finalizer is forbidden in class 'XXX' that is open ==== <small>open 类不允许有析构函数</small> ==== OverflowException: typecast ==== random 中出现,下列代码有很大机率出现错误。 <small>from std import random.* let r: Random = Random() r.seed = dt() var i : UInt64 = UInt64(r.nextInt64())</small> 目前的解决办法是多试几次 nextInt64()。 <small>// rand, random…”)
 
无编辑摘要
第1行: 第1行:
以下错误出现在仓颉 0.45.2 cjnative 版本。
以下错误出现在仓颉 0.45.2 cjnative for Linux 版本。
__TOC__


==== finalizer is forbidden in class 'XXX' that is open ====
==== finalizer is forbidden in class 'XXX' that is open ====
第34行: 第35行:
[[分类:Develop]]
[[分类:Develop]]
[[分类:国产开发语言]]
[[分类:国产开发语言]]
__TOC__

2024年3月13日 (三) 15:38的版本

以下错误出现在仓颉 0.45.2 cjnative for Linux 版本。

finalizer is forbidden in class 'XXX' that is open

open 类不允许有析构函数

OverflowException: typecast

random 中出现,下列代码有很大机率出现错误。

from std import random.*
let r: Random = Random()
r.seed = dt()
var i : UInt64 = UInt64(r.nextInt64())

目前的解决办法是多试几次 nextInt64()。

// rand, random
public func rand(l : UInt64) : UInt64 {
    let r: Random = Random()
    r.seed = dt()
    var i : UInt64 = 0
    var flag : Bool = true
    while (flag) {
        try {
            i = UInt64(r.nextInt64())
            flag = false
        } catch (e: Exception) {
            println(e)
            i = 0
        }
    }
    
    UInt64(i % UInt64(10 ** l))
}