public init(data: Array<T>)
功能:给定一个 Array 数组实例,创建其对应的迭代器,用来迭代遍历该数组实例中全部对象。
参数:
public func iterator(): Iterator<T>
功能:获取当前迭代器实例本身。
返回值:
public class Box<T> {
public var value: T
public init(v: T)
} 功能:Box 类型提供了为其他类型添加一层 class 封装的能力。
如果 T 类型本身不具备引用能力,如 struct 类型,封装后 Box<T> 类型将可被引用。
extend<T> Box<T> <: Comparable<Box<T>> where T <: Comparable<T>
功能:为 Box<T> 类扩展 Comparable<Box<T>> 接口,提供比较大小的能力。
Box<T> 实例的大小关系与其封装的 T 实例大小关系相同。
func compare(Box<T>)
public func compare(that: Box<T>): Ordering
功能:判断当前 Box 实例与另一个 Box 实例的大小关系。
参数:
返回值:
operator func !=(Box<T>)
public operator func !=(that: Box<T>): Bool
功能:比较 Box 对象是否不相等。
参数:
返回值:
operator func <(Box<T>)
public operator func <(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
返回值:
operator func <=(Box<T>)
public operator func <=(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
返回值:
operator func ==(Box<T>)
public operator func ==(that: Box<T>): Bool
功能:比较 Box 对象是否相等。
参数:
返回值:
operator func >(Box<T>)
public operator func >(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
返回值:
operator func >=(Box<T>)
public operator func >=(that: Box<T>): Bool
功能:比较 Box 对象的大小。
参数:
返回值:
extend<T> Box<T> <: Hashable where T <: Hashable
func hashCode()
public func hashCode(): Int64
功能:获取 Box 对象的哈希值。
实际上该值为 Box 中封装的 T 类型实例的哈希值。
返回值:
extend<T> Box<T> <: ToString where T <: ToString
func toString()
public func toString(): String
功能:获取 Box 对象的字符串表示,字符串内容为当前实例封装的 T 类型实例的字符串表示。
返回值:
public class Future<T>
功能:Future<T> 实例代表一个仓颉线程任务,可用于获取仓颉线程的计算结果,向仓颉线程发送取消信号。
spawn 表达式的返回类型是 Future<T>,其中 T 的类型取决于 spawn 表达式中的闭包的返回值类型。
public func cancel(): Unit
功能:给当前 Future 实例对应的仓颉线程发送取消请求。该方法不会立即停止线程执行,仅发送请求,相应地,Thread 类的函数 hasPendingCancellation 可用于检查线程是否存在取消请求,用户可以通过该检查来自行决定是否提前终止线程以及如何终止线程。
public func get(): T
功能:阻塞当前线程,等待并获取当前 Future<T> 对象对应的线程的结果。
返回值:
public func get(ns: Int64): Option<T>
功能:阻塞当前线程,等待指定时长并获取当前 Future<T> 对象对应的线程的返回值。
需指定等待的超时时间,如果相应的线程在指定时间内未完成执行,则该函数将返回 None如果 ns <= 0,等同于 get(),即不限制等待时长。如果线程抛出异常退出执行,在 get 调用处将继续抛出该异常。
参数:
返回值:
public func tryGet(): Option<T>
功能:尝试获取执行结果,不会阻塞当前线程。如果相应的线程未完成,则该函数返回 None。
返回值:
public abstract class Iterator<T> <: Iterable<T>
功能:该类表示迭代器,提供 next 方法支持对容器内的成员进行迭代遍历。
func all((T) -> Bool)
public func all(predicate: (T)-> Bool): Bool
功能:判断迭代器所有元素是否都满足条件。
参数:
返回值:
func any((T) -> Bool)
public func any(predicate: (T)-> Bool): Bool
功能:判断迭代器是否存在任意一个满足条件的元素。
参数:
返回值:
func at(Int64)
public func at(n: Int64): Option<T>
功能:获取当前迭代器第 n 个元素。
参数:
返回值:
func concat(Iterator<T>)
public func concat(it: Iterator<T>): Iterator<T>
功能:串联两个迭代器,当前迭代器在先,参数表示的迭代器在后。
参数:
返回值:
func count()
public func count(): Int64
功能:统计当前迭代器包含元素数量。
返回值:
func enumerate()
public func enumerate(): Iterator<(Int64, T)>
功能:用于获取带索引的迭代器。
返回值:
func filter((T) -> Bool)
public func filter(predicate: (T)-> Bool): Iterator<T>
功能:筛选出满足条件的元素。
参数:
返回值:
func filterMap<R>((T) -> Option<R>)
public func filterMap<R>(transform: (T)-> Option<R>): Iterator<R>
功能:同时进行筛选操作和映射操作,返回一个新的迭代器。
参数:
返回值:
func first()
public func first(): Option<T>
功能:获取当前迭代器的头部元素。
返回值:
func flatMap<R>((T) -> Iterator<R>)
public func flatMap<R>(transform: (T)-> Iterator<R>): Iterator<R>
功能:创建一个带 flatten 功能的映射。
参数:
返回值:
func fold<R>(R, (R, T) -> R)
public func fold<R>(initial: R, operation: (R, T)->R): R
功能:使用指定初始值,从左向右计算。
参数:
返回值:
func forEach((T) -> Unit)
public func forEach(action: (T)-> Unit): Unit
功能:遍历当前迭代器所有元素,对每个元素执行给定的操作。
参数:
func inspect((T) -> Unit)
public func inspect(action: (T) -> Unit): Iterator<T>
功能:迭代器每次调用 next() 对当前元素执行额外操作(不会消耗迭代器中元素)。
参数:
返回值:
func isEmpty()
public func isEmpty(): Bool
功能:判断当前迭代器是否为空。
返回值:
func last()
public func last(): Option<T>
功能:获取当前迭代器尾部元素。
返回值:
func map<R>((T) -> R)
public func map<R>(transform: (T)-> R): Iterator<R>
功能:创建一个映射。
参数:
返回值:
func none((T) -> Bool)
public func none(predicate: (T)-> Bool): Bool
功能:判断当前迭代器中所有元素是否都不满足条件。
参数:
返回值:
func reduce((T, T) -> T)
public func reduce(operation: (T, T) -> T): Option<T>
功能:使用第一个元素作为初始值,从左向右计算。
参数:
返回值:
func skip(Int64)
public func skip(count: Int64): Iterator<T>
功能:从前往后从当前迭代器跳过特定个数。
当 count 小于 0 时,抛异常。当 count 等于 0 时,相当没有跳过任何元素,返回原迭代器。当 count 大于0并且count小于迭代器的大小时,跳过 count 个元素后,返回含有剩下的元素的新迭代器。当 count 大于等于迭代器的大小时,跳过所有元素,返回空迭代器。
参数:
返回值:
异常:
func step(Int64)
public func step(count: Int64): Iterator<T>
功能:迭代器每次调用 next() 跳过特定个数。
当 count 小于等于 0 时,抛异常。当 count 大于 0 时,每次调用 next() 跳过 count 次,直到迭代器为空。
参数:
返回值:
异常:
func take(Int64)
public func take(count: Int64): Iterator<T>
功能:从当前迭代器取出特定个数。
从后往前取出当前迭代器特定个数的元素。当 count 小于 0 时,抛异常。当 count 等于 0 时,不取元素,返回空迭代器。当 count 大于 0 小于迭代器的大小时,取前 count 个元素,返回新迭代器。当 count 大于等于迭代器的大小时,取所有元素,返回原迭代器。
参数:
返回值:
异常:
func zip<R>(Iterator<R>)
public func zip<R>(it: Iterator<R>): Iterator<(T, R)>
功能:将两个迭代器合并成一个(长度取决于短的那个迭代器)。
参数:
返回值:
extend<T> Iterator<T> where T <: Comparable<T>
功能:为 Iterator<T> 类型扩展 Comparable<T> 接口,支持比较操作。
func max()
public func max(): Option<T>
功能:筛选最大的元素。
返回值:
func min()
public func min(): Option<T>
功能:筛选最小的元素。
返回值:
func contains(T)
public func contains(element: T): Bool
功能:遍历所有元素,判断是否包含指定元素。
参数:
返回值:
public open class Object <: Any {
public const init()
} Object 是所有 class 的父类,所有 class 都默认继承它。Object 类中不包含任何成员,即 Object 是一个“空”的类。
public class RangeIterator<T> <: Iterator<T> where T <: Countable<T> & Comparable<T> & Equatable<T>
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)
} 功能:表示一个异常堆栈的具体信息,包括异常发生的类名、函数名、文件名、行号。
public init(declaringClass: String, methodName: String, fileName: String, lineNumber: Int64)
功能:构造一个异常堆栈实例,指定类名、函数名、文件名、行号。
参数:
public class StringBuilder <: ToString {
public init()
public init(str: String)
public init(r: Rune, n: Int64)
public init(value: Array<Rune>)
public init(capacity: Int64)
} 功能:该类主要用于字符串的构建。
StringBuilder 在字符串的构建上效率高于 String:
StringBuilder 仅支持 UTF-8 编码的字符数据。
public prop capacity: Int64
功能:获取 StringBuilder 实例此时能容纳字符串的长度,该值会随扩容的发生而变大。
类型:Int64
public init(value: Array<Rune>)
功能:使用参数 value 指定的字符数组初始化一个 StringBuilder 实例,该实例的初始容量为 value 大小,初始内容为 value 包含的字符内容。
参数:
public init(capacity: Int64)
功能:使用参数 capacity 指定的容量初始化一个空 StringBuilder 实例,该实例的初始容量为 value 大小,初始内容为若干 \0 字符。
参数:
异常:
public init(r: Rune, n: Int64)
功能:使用 n 个 r 字符初始化 StringBuilder 实例,该实例的初始容量为 n,初始内容为 n 个 r 字符。
参数:
异常:
public init(str: String)
功能:根据指定初始字符串构造 StringBuilder 实例,该实例的初始容量为指定字符串的大小,初始内容为指定字符串。
参数:
public func append(runeArr: Array<Rune>): Unit
功能:在 StringBuilder 末尾插入一个 Rune 数组中所有字符。
参数:
public func append<T>(val: Array<T>): Unit where T <: ToString
功能:在 StringBuilder 末尾插入参数 val 指定的 Array<T> 的字符串表示,类型 T 需要实现 ToString 接口。
参数:
public func append(cstr: CString): Unit
功能:在 StringBuilder 末尾插入参数 cstr 指定 CString 中的内容。
参数:
public func append(n: Float16): Unit
功能:在 StringBuilder 末尾插入参数 n 的字符串表示。
参数:
public func append(n: Float32): Unit
功能:在 StringBuilder 末尾插入参数 n 的字符串表示。
参数:
public func append(n: Float64): Unit
功能:在 StringBuilder 末尾插入参数 n 的字符串表示。
参数:
public func append(r: Rune): Unit
功能:在 StringBuilder 末尾插入参数 r 指定的字符。
参数:
public func append(str: String): Unit
功能:在 StringBuilder 末尾插入参数 str 指定的字符串。
参数:
public func append(sb: StringBuilder): Unit
功能:在 StringBuilder 末尾插入参数 sb 指定的 StringBuilder 中的内容。
参数:
public func append<T>(v: T): Unit where T <: ToString
功能:在 StringBuilder 末尾插入参数 v 指定 T 类型的字符串表示,类型 T 需要实现 ToString 接口。
参数:
public func appendFromUtf8(arr: Array<Byte>): Unit
功能:在 StringBuilder 末尾插入参数 arr 指向的字节数组。
该函数要求参数 arr 符合 UTF-8 编码,如果不符合,将抛出异常。
参数:
异常:
public unsafe func appendFromUtf8Unchecked(arr: Array<Byte>): Unit
功能:在 StringBuilder 末尾插入参数 arr 指向的字节数组。
相较于 appendFromUtf8 函数,它并没有针对于字节数组进行 UTF-8 相关规则的检查,所以它所构建的字符串并不一定保证是合法的,甚至出现非预期的异常,如果不是某些场景下的速度考虑,请优先使用安全的 appendFromUtf8 函数。
参数:
public func reserve(additional: Int64): Unit
功能:将 StringBuilder 扩容 additional 大小。
当 additional 小于等于零,或剩余容量大于等于 additional 时,不发生扩容;当剩余容量小于 additional 时,扩容至当前容量的 1.5 倍(向下取整)与 size + additional 的最大值。
参数:
public func reset(capacity!: Option<Int64> = None): Unit
功能:清空当前 StringBuilder,并将容量重置为 capacity 指定的值。
参数:
异常:
public func toString(): String
功能:获取 StringBuilder 实例中的字符串。
该函数不会将字符串数据进行拷贝。
返回值:
public class Thread
功能:Thread 类代表一个仓颉类,可用于获取线程 ID 及名字、查询线程是否存在取消请求、注册线程未处理异常的处理函数等。
该类型实例无法通过构造得到,仅能通过 Future 对象的 thread 属性或是 Thread 类的 currentThread 静态属性获取。
public static prop currentThread: Thread
功能:获取当前执行线程的 Thread 对象。
类型:Thread
public prop hasPendingCancellation: Bool
功能:线程是否存在取消请求,即是否通过 future.cancel() 发送过取消请求,常见使用方为 Thread.currentThread.hasPendingCancellation。
类型:Bool
public prop id: Int64
功能:获取当前执行线程的标识,以 Int64 表示,所有存活的线程都有不同标识,但不保证当线程执行结束后复用它的标识。
类型:Int64
public static func handleUncaughtExceptionBy(exHandler: (Thread, Exception) -> Unit): Unit
功能:注册线程未处理异常的处理函数。
当某一线程因异常而提前终止后,如果全局的未处理异常函数被注册,那么将调用该函数并结束线程,在该函数内抛出异常时,将向终端打印提示信息并结束线程,但不会打印异常调用栈信息;如果没有注册全局异常处理函数,那么默认会向终端打印异常调用栈信息。
多次注册处理函数时,后续的注册函数将覆盖之前的处理函数。
当有多个线程同时因异常而终止时,处理函数将被并发执行,因而开发者需要在处理函数中确保并发正确性。
处理函数的参数第一个参数类型为 Thread,是发生异常的线程,第二个参数类型为 Exception,是线程未处理的异常。
参数: