仓颉 Error:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
无编辑摘要
无编辑摘要
 
第7行: 第7行:
==== OverflowException: typecast ====
==== OverflowException: typecast ====
random 中出现,下列代码有很大机率出现错误。
random 中出现,下列代码有很大机率出现错误。
  <small>from std import random.*
  <from std import random.*
  let r: Random = Random()
  let r: Random = Random()
  r.seed = dt()
  r.seed = dt()
  var i : UInt64 = UInt64(r.nextInt64())</small>
  var i : UInt64 = UInt64(r.nextInt64())</small>
目前的解决办法是多试几次 nextInt64()。
目前的解决办法是多试几次 nextInt64()。
  <small>// rand, random
  <// rand, random
  public func rand(l : UInt64) : UInt64 {
  public func rand(l : UInt64) : UInt64 {
     let r: Random = Random()
     let r: Random = Random()
第30行: 第30行:
     UInt64(i % UInt64(10 ** l))
     UInt64(i % UInt64(10 ** l))
  }</small>
  }</small>
==== cjpm: error while loading shared libraries: libcrypto.so.3 ====
error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory


 
需要 openssl 3,安装参见 [[openssl]]


[[分类:Develop]]
[[分类:Develop]]
[[分类:国产开发语言]]
[[分类:国产开发语言]]

2024年3月13日 (三) 17:22的最新版本

以下错误出现在仓颉 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))
}

cjpm: error while loading shared libraries: libcrypto.so.3

error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory

需要 openssl 3,安装参见 openssl