2.1.1.core – 仓颉用户手册
2.1.1core – 仓颉用户手册
介绍
此包包括一些常用接口 ToString、 Hashable、 Equatable 等,以及 String、 Range、 Array、 Option 等常用数据结构,包括预定义的异常、错误类型等。
主要接口
interface Any
public interface Any
Any
是所有类型的父类型,所有 interface
都默认继承它,所有非 interface
类型都默认实现它。
class Object
public open class Object <: Any {
public const init()
}
Object
是所有 class
的父类,所有 class
都默认继承它。
init
public const init()
功能:构造一个 object
实例。
interface CharExtension
public interface CharExtension
CharExtension
是 Char
相关的辅助接口。
interface Hasher
public interface Hasher {
func finish(): Int64
mut func reset(): Unit
mut func write(value: Bool): Unit
mut func write(value: Char): Unit
mut func write(value: Int8): Unit
mut func write(value: Int16): Unit
mut func write(value: Int32): Unit
mut func write(value: Int64): Unit
mut func write(value: UInt8): Unit
mut func write(value: UInt16): Unit
mut func write(value: UInt32): Unit
mut func write(value: UInt64): Unit
mut func write(value: Float16): Unit
mut func write(value: Float32): Unit
mut func write(value: Float64): Unit
mut func write(value: String): Unit
}
Hasher
是用来处理哈希组合运算的接口。
func finish
func finish(): Int64
功能:返回哈希运算的结果。
返回值:经过计算后的哈希值
func reset
mut func reset(): Unit
功能:重置哈希值。
func write
mut func write(value: Bool): Unit
功能:通过该函数把想要哈希运算的 Bool 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Char): Unit
功能:通过该函数把想要哈希运算的 Char 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Int8): Unit
功能:通过该函数把想要哈希运算的 Int8 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Int16): Unit
功能:通过该函数把想要哈希运算的 Int16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Int32): Unit
功能:通过该函数把想要哈希运算的 Int32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Int64): Unit
功能:通过该函数把想要哈希运算的 Int64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: UInt8): Unit
功能:通过该函数把想要哈希运算的 UInt8 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: UInt16): Unit
功能:通过该函数把想要哈希运算的 UInt16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: UInt32): Unit
功能:通过该函数把想要哈希运算的 UInt32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: UInt64): Unit
功能:通过该函数把想要哈希运算的 UInt64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Float16): Unit
功能:通过该函数把想要哈希运算的 Float16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Float32): Unit
功能:通过该函数把想要哈希运算的 Float32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: Float64): Unit
功能:通过该函数把想要哈希运算的 Float64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
mut func write(value: String): Unit
功能:通过该函数把想要哈希运算的 String 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
class ArithmeticException
public open class ArithmeticException <: Exception {
public init()
public init(message: String)
}
ArithmeticException
为算术异常类,用于在发生算术异常时使用。
init
public init()
功能:构造一个默认的 ArithmeticException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 ArithmeticException 实例。
参数:
- message:异常信息
func getClassName
protected open override func getClassName(): String
功能:获得类名。
返回值:类名字符串
class ArrayIterator
public class ArrayIterator<T> <: Iterator<T> {
public init(data: Array<T>)
}
数组迭代器。
init
public init(data: Array<T>)
功能:创建一个数组迭代器。
参数:
- data:数组
func next
public func next(): Option<T>
功能:返回迭代器中的下一个值。
返回值:Option,可以使用 match 解构
func iterator
public func iterator(): Iterator<T>
功能:返回迭代器。
返回值:Iterator 类型,可以使用迭代器进行遍历。
class Box
public class Box<T> {
public var value: T
public init(v: T)
}
Box
泛型提供了将所有的类型包装成引用类型的能力。
value
public var value: T
功能:获取或修改被包装的值。
init
public init(v: T)
功能:构造函数。
参数:
- v:任意仓颉支持的类型参数
extend Box <: Hashable
extend Box<T> <: Hashable where T <: Hashable
func hashCode
public func hashCode(): Int64
功能:获取 Box 对象的 hashCode 值。
返回值:hashCode 值
extend Box <: Comparable
extend Box<T> <: Comparable<Box<T>> where T <: Comparable<T>
为 Box<T>
类扩展 Comparable<Box<T>>
接口,其中 T
必须是 Comparable<T>
类型。Box<T>
实例的大小关系与其封装的 T
实例大小关系相同。
operator func >
public operator func >(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
- that:比较的另外一个 Box 对象
返回值:原 Box 对象大于 that Box 对象返回 true,否则返回 false
operator func <
public operator func <(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
- that:比较的另外一个 Box 对象
返回值:原 Box 对象小于 that Box 对象返回 true,否则返回 false
operator func >=
public operator func >=(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
- that:比较的另外一个 Box 对象
返回值:原 Box 对象大于等于 that Box 对象返回 true,否则返回 false
operator func <=
public operator func <=(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
- that:比较的另外一个 Box 对象
返回值:原 Box 对象小于等于 that Box 对象返回 true,否则返回 false
operator func ==
public operator func ==(that: Box<T>): Bool
功能:比较 Box 对象是否相等。
参数:
- that:比较的另外一个 Box 对象
返回值:相等返回 true,不相等返回 false
operator func !=
public operator func !=(that: Box<T>): Bool
功能:比较 Box 对象是否不相等。
参数:
- that:比较的另外一个 Box 对象
返回值:不相等返回 true,相等返回 false
func compare
public func compare(that: Box<T>): Ordering
功能:判断当前 Box 实例与另一个 Box 实例的大小关系。
参数:
- that:比较的另外一个 Box 对象
返回值:如果当前 Box 实例大于 that,返回 Ordering.GT,等于返回 Ordering.EQ,小于返回 Ordering.LT
extend Box <: ToString
extend Box<T> <: ToString where T <: ToString
func toString
public func toString(): String
功能:获取 Box 对象的字符串表示。
返回值:转换后的字符串
class SpawnException
public class SpawnException <: Exception {
public init()
public init(message: String)
}
SpawnException
为线程异常类,用于在线程处理过程中发生异常时使用。
init
public init()
功能:构造一个默认的 SpawnException 实例,默认错误信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 SpawnException 实例。
参数:
- message:预定义消息
class Error
public open class Error <: ToString
Error
是所有错误类的基类。该类不可被继承,不可初始化,但是可以被捕获到。
prop message
public open prop message: String
功能:获取错误信息。
func toString
public open func toString(): String
功能:获取当前 Error 实例的字符串值,包括类名和错误信息。
返回值:错误信息字符串
func printStackTrace
public open func printStackTrace(): Unit
功能:向控制台打印堆栈信息。
func getStackTrace
public func getStackTrace(): Array<StackTraceElement>
功能:获取堆栈信息,每一条堆栈信息用一个 StackTraceElement 实例表示,最终返回一个 StackTraceElement 的数组。
返回值:堆栈信息数组
class Exception
public open class Exception <: ToString {
public init()
public init(message: String)
}
Exception
是所有异常类的基类。
init
public init()
功能:构造一个默认的 Exception 实例,默认异常信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 Exception 实例。
参数:
- message:异常信息
prop message
public open prop message: String
功能:获取异常信息。
func toString
public open func toString(): String
功能:获取当前 Exception 实例的字符串值,包括类名和异常信息。
返回值:异常信息字符串
func printStackTrace
public func printStackTrace(): Unit
功能:向控制台打印堆栈信息。
func getStackTrace
public func getStackTrace(): Array<StackTraceElement>
功能:获取堆栈信息,每一条堆栈信息用一个 StackTraceElement 实例表示,最终返回一个 StackTraceElement 的数组。
返回值:堆栈信息数组
func getClassName
protected open func getClassName(): String
功能:获得类名,用字符串表示。
返回值:类名
class IllegalArgumentException
public class IllegalArgumentException <: Exception {
public init()
public init(message: String)
}
IllegalArgumentException
为参数非法异常。
init
public init()
功能:构造一个默认的 IllegalArgumentException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 IllegalArgumentException 实例。
参数:
- message:异常信息
class IllegalStateException
public class IllegalStateException <: Exception {
public init()
public init(message: String)
}
IllegalStateException
为非法状态异常。
init
public init()
功能:构造一个默认的 IllegalStateException 实例,默认异常信息为空。
init
public init(message: String)
参数:
功能:根据异常信息构造一个 IllegalStateException 实例。
- message:异常信息
class IndexOutOfBoundsException
public class IndexOutOfBoundsException <: Exception {
public init()
public init(message: String)
}
IndexOutOfBoundsException
为索引越界异常。
init
public init()
功能:构造一个默认的 IndexOutOfBoundsException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 IndexOutOfBoundsException 实例。
参数:
- message:异常信息
class NegativeArraySizeException
public class NegativeArraySizeException <: Exception {
public init()
public init(message: String)
}
NegativeArraySizeException
为数组索引值为负数异常。
init
public init()
功能:构造一个默认的 NegativeArraySizeException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据异常信息构造一个 NegativeArraySizeException 实例。
参数:
- message:异常信息
class NoneValueException
public class NoneValueException <: Exception {
public init()
public init(message: String)
}
表示 Option 实例的值为 None
的异常类。
init
public init()
功能:构造一个默认的 NoneValueException 实例,默认异常信息为空。。
init
public init(message: String)
功能:根据异常信息构造一个 NoneValueException 实例。
参数:
- message:异常信息
class UnsupportedException
public class UnsupportedException <: Exception {
public init()
public init(message: String)
}
表示功能未支持的异常类。
init
public init()
功能:构造一个默认的 UnsupportedException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据指定异常信息构造 UnsupportedException 实例。
参数:
- message:异常消息
class InternalError
public class InternalError <: Error
InternalError
继承了 Error
,表示内部错误,该类不可初始化,但是可以被捕获到
class OutOfMemoryError
public class OutOfMemoryError <: Error
OutOfMemoryError
继承了 Error
,表示内存不足错误,该类不可被继承,不可初始化,但是可以被捕获到
class OverflowException
public class OverflowException <: ArithmeticException {
public init()
public init(message: String)
}
OverflowException
为算术运算溢出异常。
init
public init()
功能:构造一个默认的 OverflowException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据指定异常信息构造 OverflowException 实例。
参数:
- message:异常信息
class IllegalMemoryException
public class IllegalMemoryException <: Exception {
public init()
public init(message: String)
}
IllegalMemoryException
为内存操作错误异常。
init
public init()
功能:构造一个默认的 IllegalMemoryException 实例,默认异常信息为空。
init
public init(message: String)
功能:根据指定异常信息构造 IllegalMemoryException 实例。
参数:
- message:异常信息
class Future
public class Future<T>
spawn
表达式的返回类型是 Future<T>
,其中 T 是类型变元,其类型与闭包表达式的返回类型一致。当我们调用 Future<T>
的 get() 函数时,阻塞当前运行的线程,直到 Future<T>
实例所代表的线程运行结束。
prop thread
public prop thread: Thread
功能:获得当前线程的 Thread 实例
func get
public func get(): T
功能:阻塞当前线程,等待当前 Future 对象对应的线程的结果。
返回值:当前 Future<T>
实例代表的线程运行结束后的返回值
func get
public func get(ns: Int64): Option<T>
功能:阻塞当前线程,等待当前 Future<T>
对象对应的线程的返回值。如果相应的线程在指定时间内未完成执行,则该函数将返回 None。
参数:
- ns:传入等待时间,单位为纳秒
返回值:如果改线程未完成,返回 None;如果 ns <= 0,等同于 get();如果线程抛出异常退出执行,在 get 调用处将继续抛出该异常
func tryGet
public func tryGet(): Option<T>
功能:尝试获取结果,不会阻塞当前线程。如果相应的线程未执行完成,则该函数返回 None,否则返回 Some。
返回值:如果未完成返回 None,否则返回 Some
func cancel
public func cancel(): Unit
功能:给当前 Future 对象对应的线程发送取消请求。该方法不会立即停止线程执行,仅发送请求,相应地,函数 hasPendingCancellation 可用于检查线程是否存在取消请求。
interface ThreadContext
public interface ThreadContext {
func end(): Unit
func hasEnded(): Bool
}
用户创建 thread
时,除了缺省 spawn
表达式入参,也可以通过传入不同 ThreadContext
类型的实例,选择不同的线程上下文,然后一定程度上控制并发行为。
目前不允许用户自行实现 ThreadContext
接口,仓颉语言根据使用场景,提供了MainThreadContext
, 具体定义可在终端框架库中查阅。
func end
func end(): Unit
功能:结束方法,用于向当前 context 发送结束请求。
func hasEnded
func hasEnded(): Bool
功能:检查方法,用于检查当前 context 是否已结束。
返回值:如果结束返回 true,否则返回 false
class Thread
public class Thread
Thread
类为用户提供获取线程 ID 及名字、查询线程是否存在取消请求、注册线程未处理异常的处理函数等功能。
该类型实例无法通过构造得到,仅能通过 Future
对象的 thread
属性或是 Thread
类的 currentThread
静态属性获取。
prop currentThread
public static prop currentThread: Thread
功能:获取当前执行线程的 Thread 对象。
prop id
public prop id: Int64
功能:获取当前执行线程的标识,以 Int64 表示,所有存活的线程都有不同标识,但不保证当线程执行结束后复用它的标识。
prop name
public mut prop name: String
功能:获取或是设置线程的名称,获取设置都具有原子性。
prop hasPendingCancellation
public prop hasPendingCancellation: Bool
功能:线程是否存在取消请求,即是否通过 future.cancel() 发送过取消请求。
常见使用方法:Thread.currentThread.hasPendingCancellation。
func handleUncaughtExceptionBy
public static func handleUncaughtExceptionBy(exHandler: (Thread, Exception) -> Unit): Unit
功能:注册线程未处理异常的处理函数当某一线程因异常而提前终止后,如果全局的未处理异常函数被注册,那么将调用该函数并结束线程,在该函数内抛出异常时,将向终端打印提示信息并结束线程,但不会打印异常调用栈信息;如果没有注册全局异常处理函数,那么默认会向终端打印异常调用栈信息。多次注册处理函数时,后续的注册函数将覆盖之前的处理函数。当有多个线程同时因异常而终止时,处理函数将被并发执行,因而开发者需要在处理函数中确保并发正确性。处理函数的参数第一个参数类型为 Thread,是发生异常的线程第二个参数类型为 Exception,是线程未处理的异常。
class ThreadLocal
public class ThreadLocal<T>
使用 ThreadLocal
可以在每个仓颉线程安全地访问他们各自的 “全局变量”。
func get
public func get(): ?T
功能:获得仓颉线程局部变量的值。
返回值:如果当前线程局部变量不为空值,返回该值,如果为空值,返回 Option<T>.None
func set
public func set(value: ?T): Unit
功能:通过 value 设置仓颉线程局部变量的值,如果传入 Option.None,该局部变量的值将被删除,在线程后续操作中将无法获取。
参数:
- value:需要设置的局部变量的值
struct Range
public struct Range<T> <: Iterable<T> where T <: Countable<T> & Comparable<T> & Equatable<T> {
public let start: T
public let end: T
public let step: Int64
public let hasStart: Bool
public let hasEnd: Bool
public let isClosed: Bool
public const init(start: T, end: T, step: Int64, hasStart: Bool, hasEnd: Bool, isClosed: Bool)
}
Range
类用于表示拥有固定步长的序列,区间类型是一个泛型,使用 Range<T>
表示。
start
public let start: T
功能:表示开始值。
end
public let end: T
功能:表示结束值。
step
public let step: Int64
功能:表示步长。
hasStart
public let hasStart: Bool
功能:表示是否包含开始值。
hasEnd
public let hasEnd: Bool
功能:表示是否包含结束值。
isClosed
public let isClosed: Bool
功能:表示区间开闭情况,为 true 表示左闭右闭,为 false 表示左闭右开。
init
public const init(start: T, end: T, step: Int64, hasStart: Bool, hasEnd: Bool, isClosed: Bool)
功能:使用该构造函数创建 Range 序列。
参数:
- start:开始值
- end:结束值
- step:步长
- hasStart:是否有开始值
- hasEnd:是否有结束值
- isClosed:true 代表左闭右闭,false 代表左闭右开
异常:
- IllegalArgumentException:当 step 等于 0 时, 抛出异常
func iterator
public func iterator(): Iterator<T>
功能:获取当前区间的迭代器。
返回值:当前区间的迭代器
func isEmpty
public const func isEmpty(): Bool
功能:判断该区间是否为空。
返回值:如果为空,返回 true,否则返回 false
class RangeIterator
public class RangeIterator<T> <: Iterator<T> where T <: Countable<T> & Comparable<T> & Equatable<T>
RangeIterator
类为 Range
类型的迭代器。
func next
public func next(): Option<T>
功能:获取迭代器中的下一个值。
返回值:迭代器中的下一个值。
func iterator
public func iterator(): Iterator<T>
功能:获取当前迭代器实例。
返回值:当前迭代器实例
class StackOverflowError
public class StackOverflowError <: Error {}
StackOverflowError
类继承了 Error
,表示堆栈溢出错误,该类不可被继承,不可初始化,但是可以被捕获到。
func printStackTrace
public override func printStackTrace(): Unit
功能:向控制台打印堆栈信息。
class StackTraceElement
public open class StackTraceElement {
public let declaringClass: String
public let methodName: String
public let fileName: String
public let lineNumber: Int64
public init(declaringClass: String, methodName: String, fileName: String, lineNumber: Int64)
}
StackTraceElement
类用于提供具体的堆栈信息。
declaringClass
public let declaringClass: String
类名
methodName
public let methodName: String
函数名
fileName
public let fileName: String
文件名
lineNumber
public let lineNumber: Int64
行号
init
public init(declaringClass: String, methodName: String, fileName: String, lineNumber: Int64)
参数:
- declaringClass:类名
- methodName:函数名
- fileName:文件名
- lineNumber:行号
struct Array
public struct Array<T> {
public const init()
public init(size: Int64, item!: T)
public init(elements: Collection<T>)
public init(size: Int64, initElement: (Int64) -> T)
}
Array
类为仓颉数组类型。
init
public const init()
功能:无参构造函数,创建一个空数组。
init
public init(size: Int64, item!: T)
功能:构造一个指定长度的数组,其中元素都用指定初始值进行初始化。
注意:该构造函数不会拷贝 item, 如果 item 是一个引用类型,构造后数组的每一个元素都将指向相同的引用。
参数:
- size:数组大小
- item:数组元素初始值
异常:
- NegativeArraySizeException:当 size 小于 0,抛出异常
init
public init(elements: Collection<T>)
功能:根据 Collection 实例创建数组,把 Collection 实例中所有元素存入数组。
参数:
- elements:根据该 Collection 实例创建数组
init
public init(size: Int64, initElement: (Int64) -> T)
功能:创建指定长度的数组,其中元素根据初始化函数计算获取。即:将 [0, size) 范围内的值分别传入初始化函数 initElement,执行得到数组对应下标的元素。
参数:
- size:数组大小
- initElement:初始化函数
异常:
- NegativeArraySizeException:当 size 小于 0,抛出异常
func slice
public func slice(start: Int64, len: Int64): Array<T>
功能:返回切片后数组。
参数:
- start:切片的起始位置
- len:切片的长度
返回值:返回切片后的数组
异常:
- IndexOutOfBoundsException:如果 start 小于 0 ,或者 len 小于 0 ,或者 (start + len)的值大于 Array 的长度,抛出异常
func get
public func get(index: Int64): Option<T>
功能:返回数组下标 index 对应的值。
参数:
- index:要获取值的下标
返回值:Option 类型的值,可以使用 match 解构
func set
public func set(index: Int64, element: T): Unit
功能:修改数组中下标 index 对应的值。
参数:
- index:需要修改的值的下标
- element:修改的目标值
异常:
- IndexOutOfBoundsException:如果 index 小于 0 或者大于或等于 Array 的长度,抛出异常
operator func []
public operator func [](index: Int64): T
功能:获取数组下标 index 对应的值。
参数:
- index:要获取值的下标
返回值:获取得到的值
异常:
- IndexOutOfBoundsException:如果 index 小于 0,或大于等于数组长度,抛出异常
operator func []
public operator func [](index: Int64, value!: T): Unit
功能:修改数组中下标 index 对应的值。
参数:
- index:需要修改值的下标
- value:修改的目标值
异常:
- IndexOutOfBoundsException:如果 index 小于 0,或大于等于数组长度,抛出异常
operator func []
public operator func [](range: Range<Int64>): Array<T>
功能:返回切片后的数组。
注意:如果参数 range 是使用 Range 构造函数构造的 Range 实例,有如下行为:
- start 的值就是构造函数传入的值本身,不受构造时传入的 hashStart 的值的影响
- hasEnd 为 false 时,该 Range 实例为开区间,不受构造时传入的 isClosed 的值的影响
参数:
- range:切片的范围,注意这里 range 的步长只能为 1
返回值:新的数组
异常:
- IllegalArgumentException:如果 range 的步长不等于 1,抛出异常
- IndexOutOfBoundsException:如果 range 表示的数组范围无效,抛出异常
operator func []
public operator func [](range: Range<Int64>, value!: T): Unit
功能:用指定的值对本数组一个连续范围的元素赋值。
注意:如果参数 range 是使用 Range 构造函数构造的 Range 实例,有如下行为:
- start 的值就是构造函数传入的值本身,不受构造时传入的 hashStart 的值的影响
- hasEnd 为 false 时,该 Range 实例为开区间,不受构造时传入的 isClosed 的值的影响
参数:
- range:数组范围,注意这里 range 的步长只能为 1
- value:修改的目标值
异常:
- IllegalArgumentException:如果 range 的步长不等于 1,抛出异常
- IndexOutOfBoundsException:如果 range 表示的数组范围无效,抛出异常
operator func []
public operator func [](range: Range<Int64>, value!: Array<T>): Unit
功能:用指定的数组对本数组一个连续范围的元素赋值。
注意:如果参数 range 是使用 Range 构造函数构造的 Range 实例,有如下行为:
- start 的值就是构造函数传入的值本身,不受构造时传入的 hashStart 的值的影响
- hasEnd 为 false 时,该 Range 实例为开区间,不受构造时传入的 isClosed 的值的影响
参数:
- range:数组范围,注意这里 range 的步长只能为 1
- value:修改的目标值
异常:
- IllegalArgumentException:如果 range 的步长不等于 1,或 range 长度不等于 value 长度,抛出异常
- IndexOutOfBoundsException:如果 range 表示的数组范围无效,抛出异常
func reverse
public func reverse(): Unit
功能:反转数组,将数组中元素的顺序进行反转。
func clone
public func clone(): Array<T>
功能:克隆数组。
返回值:新的数组
func clone
public func clone(range: Range<Int64>) : Array<T>
功能:按 Range 克隆数组。
注意:如果参数 range 是使用 Range 构造函数构造的 Range 实例,有如下行为:
- start 的值就是构造函数传入的值本身,不受构造时传入的 hashStart 的值的影响
- hasEnd 为 false 时,该 Range 实例为开区间,不受构造时传入的 isClosed 的值的影响
参数:
- range:切片的范围
返回值:新的数组
异常:
- IndexOutOfBoundsException:range 超出数组范围则抛出此异常
func copyTo
public func copyTo(dst: Array<T>, srcStart: Int64, dstStart: Int64, copyLen: Int64): Unit
功能:将当前数组中的一段数据拷贝到目标数组中。
参数:
- dst:目标数组
- srcStart:从 this 数组的 srcStart 下标开始拷贝
- dstStart:从目标数组的 dstStart 下标开始拷贝
- copyLen:拷贝数组的长度
异常:
- IllegalArgumentException:copyLen 小于 0 则抛出此异常
- IndexOutOfBoundsException:如果 srcStart 或 dstStart 小于 0,或 srcStart 大于或等于 this 数组大小,或 dstStart 大于或等于目标数组大小,或 copyLen 超出范围则抛出此异常。
struct DefaultHasher
public struct DefaultHasher <: Hasher {
public init(res!: Int64 = 0)
}
DefaultHasher
是 struct 类型,提供了默认的哈希算法实现。
init
public init(res!: Int64 = 0)
功能:构造函数,创建一个 DefaultHasher。
参数:
- res:哈希结果,默认为 0
func reset
public mut func reset(): Unit
功能:重置哈希值为 0。
func finish
public func finish(): Int64
功能:获取哈希运算的结果。
返回值:哈希运算的结果
func write
public mut func write(value: Bool): Unit
功能:通过该函数把想要哈希运算的 Bool 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Char): Unit
功能:通过该函数把想要哈希运算的 Char 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Int8): Unit
功能:通过该函数把想要哈希运算的 Int8 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Int16): Unit
功能:通过该函数把想要哈希运算的 Int16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Int32): Unit
功能:通过该函数把想要哈希运算的 Int32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Int64): Unit
功能:通过该函数把想要哈希运算的 Int64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: UInt8): Unit
功能:通过该函数把想要哈希运算的 UInt8 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: UInt16): Unit
功能:通过该函数把想要哈希运算的 UInt16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: UInt32): Unit
功能:通过该函数把想要哈希运算的 UInt32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: UInt64): Unit
功能:通过该函数把想要哈希运算的 UInt64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Float16): Unit
功能:通过该函数把想要哈希运算的 Float16 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Float32): Unit
功能:通过该函数把想要哈希运算的 Float32 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: Float64): Unit
功能:通过该函数把想要哈希运算的 Float64 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
func write
public mut func write(value: String): Unit
功能:通过该函数把想要哈希运算的 String 值传入,然后进行哈希组合运算。
参数:
- value:待运算的值
struct LibC
public struct LibC
LibC
是一个 struct
类型,提供了仓颉中较为高频使用的 C 接口。
func malloc
public static func malloc<T>(count!: Int64 = 1): CPointer<T> where T <: CType
功能:在堆中申请对应长度的内存。泛型参数 T 需要是 CType 的子类型。
参数:
- count:为可选参数,默认为1,表示申请 T 类型的个数
返回值:如果申请成功返回非空指针,内存长度为 sizeOf() * count
func free
public static unsafe func free<T>(p: CPointer<T>): Unit where T <: CType
功能:释放堆内存。
参数:
- p:表示被释放的内存地址
func mallocCString
public static unsafe func mallocCString(str: String): CString
功能:通过 String 申请与之字符内容相同的 C 风格字符串。
参数:
- str:仓颉 String 类型
返回值:返回 C 风格字符串,以 ‘