网站标签该站未曾设置keywords
网站描述该站未曾设置description
上一篇:夕阳知己丨中老年交友平台
下一篇:咸宁振宁技工学校
网站快照大 鱼 的 世 界 A d m i n i s t r a t o r j i a n g d a y u 2 5 2 0 1 9 1 2 2 1 T 0 2 : 5 1 : 0 0 Z 2 0 1 9 1 2 2 1 T 0 2 : 5 1 : 0 0 Z 8 1 1 1 4 6 3 5 3 5 2 1 4 7 4 5 3 1 6 . 0 0 C l e a n C l e a n 7 . 8 磅 0 2 f a l s e f a l s e f a l s e E N U S Z H C N X N O N E k o t l i n 函 数 文 章 来 源 ( h t t p s : / / w w w . k o t l i n c n . n e t / d o c s / r e f e r e n c e / f u n c t i o n s . h t m l ) 函 数 声 明 K o t l i n 中 的 函 数 使 用 f u n 关 键 字 声 明 : f u n d o u b l e ( x : I n t ) : I n t 函 数 用 法 调 用 函 数 使 用 传 统 的 方 法 : v a l r e s u l t = d o u b l e ( 2 ) 调 用 成 员 函 数 使 用 点 表 示 法 : S t r e a m ( ) . r e a d ( ) / / 创 建 类 S t r e a m 实 例 并 调 用 r e a d ( ) 参 数 函 数 参 数 使 用 P a s c a l 表 示 法 定 义 , 即 n a m e : t y p e 。 参 数 用 逗 号 隔 开 。 每 个 参 数 必 须 有 显 式 类 型 : f u n p o w e r O f ( n u m b e r : I n t , e x p o n e n t : I n t ) 默 认 参 数 函 数 参 数 可 以 有 默 认 值 , 当 省 略 相 应 的 参 数 时 使 用 默 认 值 。 与 其 他 语 言 相 比 , 这 可 以 减 少 重 载 数 量 : f u n r e a d ( b : A r r a y , o f f : I n t = 0 , l e n : I n t = b . s i z e ) 默 认 值 通 过 类 型 后 面 的 = 及 给 出 的 值 来 定 义 。 覆 盖 方 法 总 是 使 用 与 基 类 型 方 法 相 同 的 默 认 参 数 值 。 当 覆 盖 一 个 带 有 默 认 参 数 值 的 方 法 时 , 必 须 从 签 名 中 省 略 默 认 参 数 值 : o p e n c l a s s A } c l a s s B : A ( ) / / 不 能 有 默 认 值 } 如 果 一 个 默 认 参 数 在 一 个 无 默 认 值 的 参 数 之 前 , 那 么 该 默 认 值 只 能 通 过 使 用 命 名 参 数 调 用 该 函 数 来 使 用 : f u n f o o ( b a r : I n t = 0 , b a z : I n t ) f o o ( b a z = 1 ) / / 使 用 默 认 值 b a r = 0 如 果 在 默 认 参 数 之 后 的 最 后 一 个 参 数 是 l a m b d a 表 达 式 , 那 么 它 既 可 以 作 为 命 名 参 数 在 括 号 内 传 入 , 也 可 以 在 括 号 外 传 入 : f u n f o o ( b a r : I n t = 0 , b a z : I n t = 1 , q u x : ( ) U n i t ) f o o ( 1 ) / / 使 用 默 认 值 b a z = 1 f o o ( q u x = ) / / 使 用 两 个 默 认 值 b a r = 0 与 b a z = 1 f o o / / 使 用 两 个 默 认 值 b a r = 0 与 b a z = 1 命 名 参 数 可 以 在 调 用 函 数 时 使 用 命 名 的 函 数 参 数 。 当 一 个 函 数 有 大 量 的 参 数 或 默 认 参 数 时 这 会 非 常 方 便 。 给 定 以 下 函 数 : f u n r e f o r m a t ( s t r : S t r i n g , n o r m a l i z e C a s e : B o o l e a n = t r u e , u p p e r C a s e F i r s t L e t t e r : B o o l e a n = t r u e , d i v i d e B y C a m e l H u m p s : B o o l e a n = f a l s e , w o r d S e p a r a t o r : C h a r = ) 我 们 可 以 使 用 默 认 参 数 来 调 用 它 : r e f o r m a t ( s t r ) 然 而 , 当 使 用 非 默 认 参 数 调 用 它 时 , 该 调 用 看 起 来 就 像 : r e f o r m a t ( s t r , t r u e , t r u e , f a l s e , _ ) 使 用 命 名 参 数 我 们 可 以 使 代 码 更 具 有 可 读 性 : r e f o r m a t ( s t r , n o r m a l i z e C a s e = t r u e , u p p e r C a s e F i r s t L e t t e r = t r u e , d i v i d e B y C a m e l H u m p s = f a l s e , w o r d S e p a r a t o r = _ ) 并 且 如 果 我 们 不 需 要 所 有 的 参 数 : r e f o r m a t ( s t r , w o r d S e p a r a t o r = _ ) 当 一 个 函 数 调 用 混 用 位 置 参 数 与 命 名 参 数 时 , 所 有 位 置 参 数 都 要 放 在 第 一 个 命 名 参 数 之 前 。 例 如 , 允 许 调 用 f ( 1 , y = 2 ) 但 不 允 许 f ( x = 1 , 2 ) 。 可 以 通 过 使 用 星 号 操 作 符 将 可 变 数 量 参 数 ( v a r a r g ) 以 命 名 形 式 传 入 : f u n f o o ( v a r a r g s t r i n g s : S t r i n g ) f o o ( s t r i n g s = * a r r a y O f ( a , b , c ) ) 对 于 J V M 平 台 : 在 调 用 J a v a 函 数 时 不 能 使 用 命 名 参 数 语 法 , 因 为 J a v a 字 节 码 并 不 总 是 保 留 函 数 参 数 的 名 称 。 返 回 U n i t 的 函 数 如 果 一 个 函 数 不 返 回 任 何 有 用 的 值 , 它 的 返 回 类 型 是 U n i t 。 U n i t 是 一 种 只 有 一 个 值 — — U n i t 的 类 型 。 这 个 值 不 需 要 显 式 返 回 : f u n p r i n t H e l l o ( n a m e : S t r i n g ? ) : U n i t U n i t 返 回 类 型 声 明 也 是 可 选 的 。 上 面 的 代 码 等 同 于 : f u n p r i n t H e l l o ( n a m e : S t r i n g ? ) 单 表 达 式 函 数 当 函 数 返 回 单 个 表 达 式 时 , 可 以 省 略 花 括 号 并 且 在 = 符 号 之 后 指 定 代 码 体 即 可 : f u n d o u b l e ( x : I n t ) : I n t = x * 2 当 返 回 值 类 型 可 由 编 译 器 推 断 时 , 显 式 声 明 返 回 类 型 是 可 选 的 : f u n d o u b l e ( x : I n t ) = x * 2 显 式 返 回 类 型 具 有 块 代 码 体 的 函 数 必 须 始 终 显 式 指 定 返 回 类 型 , 除 非 他 们 旨 在 返 回 U n i t , 在 这 种 情 况 下 它 是 可 选 的 。 K o t l i n 不 推 断 具 有 块 代 码 体 的 函 数 的 返 回 类 型 , 因 为 这 样 的 函 数 在 代 码 体 中 可 能 有 复 杂 的 控 制 流 , 并 且 返 回 类 型 对 于 读 者 ( 有 时 甚 至 对 于 编 译 器 ) 是 不 明 显 的 。 可 变 数 量 的 参 数 ( V a r a r g s ) 函 数 的 参 数 ( 通 常 是 最 后 一 个 ) 可 以 用 v a r a r g 修 饰 符 标 记 : f u n a s L i s t ( v a r a r g t s : T ) : L i s t 允 许 将 可 变 数 量 的 参 数 传 递 给 函 数 : v a l l i s t = a s L i s t ( 1 , 2 , 3 ) 在 函 数 内 部 , 类 型 T 的 v a r a r g 参 数 的 可 见 方 式 是 作 为 T 数 组 , 即 上 例 中 的 t s 变 量 具 有 类 型 A r r a y 。 只 有 一 个 参 数 可 以 标 注 为 v a r a r g 。 如 果 v a r a r g 参 数 不 是 列 表 中 的 最 后 一 个 参 数 , 可 以 使 用 命 名 参 数 语 法 传 递 其 后 的 参 数 的 值 , 或 者 , 如 果 参 数 具 有 函 数 类 型 , 则 通 过 在 括 号 外 部 传 一 个 l a m b d a 。 当 我 们 调 用 v a r a r g 函 数 时 , 我 们 可 以 一 个 接 一 个 地 传 参 , 例 如 a s L i s t ( 1 , 2 , 3 ) , 或 者 , 如 果 我 们 已 经 有 一 个 数 组 并 希 望 将 其 内 容 传 给 该 函 数 , 我 们 使 用 伸 展 ( s p r e a d ) 操 作 符 ( 在 数 组 前 面 加 * ) : v a l a = a r r a y O f ( 1 , 2 , 3 ) v a l l i s t = a s L i s t ( 1 , 0 , * a , 4 ) 中 缀 表 示 法 标 有 i n f i x 关 键 字 的 函 数 也 可 以 使 用 中 缀 表 示 法 ( 忽 略 该 调 用 的 点 与 圆 括 号 ) 调 用 。 中 缀 函 数 必 须 满 足 以 下 要 求 : · 它 们 必 须 是 成 员 函 数 或 扩 展 函 数 ; · 它 们 必 须 只 有 一 个 参 数 ; · 其 参 数 不 得 接 受 可 变 数 量 的 参 数 且 不 能 有 默 认 值 。 i n f i x f u n I n t . s h l ( x : I n t ) : I n t / / 用 中 缀 表 示 法 调 用 该 函 数 1 s h l 2 / / 等 同 于 这 样 1 . s h l ( 2 ) 中 缀 函 数 调 用 的 优 先 级 低 于 算 术 操 作 符 、 类 型 转 换 以 及 r a n g e T o 操 作 符 。 以 下 表 达 式 是 等 价 的 : · 1 s h l 2 + 3 等 价 于 1 s h l ( 2 + 3 ) · 0 u n t i l n * 2 等 价 于 0 u n t i l ( n * 2 ) · x s u n i o n y s a s S e t 等 价 于 x s u n i o n ( y s a s S e t ) 另 一 方 面 , 中 缀 函 数 调 用 的 优 先 级 高 于 布 尔 操 作 符 & & 与 | | 、 i s 与 i n 检 测 以 及 其 他 一 些 操 作 符 。 这 些 表 达 式 也 是 等 价 的 : · a & & b x o r c 等 价 于 a & & ( b x o r c ) · a x o r b i n c 等 价 于 ( a x o r b ) i n c 完 整 的 优 先 级 层 次 结 构 请 参 见 其 语 法 参 考 。 请 注 意 , 中 缀 函 数 总 是 要 求 指 定 接 收 者 与 参 数 。 当 使 用 中 缀 表 示 法 在 当 前 接 收 者 上 调 用 方 法 时 , 需 要 显 式 使 用 t h i s ; 不 能 像 常 规 方 法 调 用 那 样 省 略 。 这 是 确 保 非 模 糊 解 析 所 必 需 的 。 c l a s s M y S t r i n g C o l l e c t i o n f u n b u i l d ( ) } 函 数 作 用 域 在 K o t l i n 中 函 数 可 以 在 文 件 顶 层 声 明 , 这 意 味 着 你 不 需 要 像 一 些 语 言 如 J a v a 、 C # 或 S c a l a 那 样 需 要 创 建 一 个 类 来 保 存 一 个 函 数 。 此 外 除 了 顶 层 函 数 , K o t l i n 中 函 数 也 可 以 声 明 在 局 部 作 用 域 、 作 为 成 员 函 数 以 及 扩 展 函 数 。 局 部 函 数 K o t l i n 支 持 局 部 函 数 , 即 一 个 函 数 在 另 一 个 函 数 内 部 : f u n d f s ( g r a p h : G r a p h ) d f s ( g r a p h . v e r t i c e s [ 0 ] , H a s h S e t ( ) ) } 局 部 函 数 可 以 访 问 外 部 函 数 ( 即 闭 包 ) 的 局 部 变 量 , 所 以 在 上 例 中 , v i s i t e d 可 以 是 局 部 变 量 : f u n d f s ( g r a p h : G r a p h ) d f s ( g r a p h . v e r t i c e s [ 0 ] ) } 成 员 函 数 成 员 函 数 是 在 类 或 对 象 内 部 定 义 的 函 数 : c l a s s S a m p l e ( ) } 成 员 函 数 以 点 表 示 法 调 用 : S a m p l e ( ) . f o o ( ) / / 创 建 类 S a m p l e 实 例 并 调 用 f o o 关 于 类 和 覆 盖 成 员 的 更 多 信 息 参 见 类 和 继 承 。 泛 型 函 数 函 数 可 以 有 泛 型 参 数 , 通 过 在 函 数 名 前 使 用 尖 括 号 指 定 : f u n s i n g l e t o n L i s t ( i t e m : T ) : L i s t 关 于 泛 型 函 数 的 更 多 信 息 参 见 泛 型 。 内 联 函 数 内 联 函 数 在 这 里 讲 述 。 扩 展 函 数 扩 展 函 数 在 其 自 有 章 节 讲 述 。 高 阶 函 数 和 L a m b d a 表 达 式 高 阶 函 数 和 L a m b d a 表 达 式 在 其 自 有 章 节 讲 述 。 尾 递 归 函 数 K o t l i n 支 持 一 种 称 为 尾 递 归 的 函 数 式 编 程 风 格 。 这 允 许 一 些 通 常 用 循 环 写 的 算 法 改 用 递 归 函 数 来 写 , 而 无 堆 栈 溢 出 的 风 险 。 当 一 个 函 数 用 t a i l r e c 修 饰 符 标 记 并 满 足 所 需 的 形 式 时 , 编 译 器 会 优 化 该 递 归 , 留 下 一 个 快 速 而 高 效 的 基 于 循 环 的 版 本 : v a l e p s = 1 E 1 0 / / g o o d e n o u g h , c o u l d b e 1 0 ^ 1 5 t a i l r e c f u n f i n d F i x P o i n t ( x : D o u b l e = 1 . 0 ) : D o u b l e = i f ( M a t h . a b s ( x M a t h . c o s ( x ) ) e l s e f i n d F i x P o i n t ( M a t h . c o s ( x ) ) 这 段 代 码 计 算 余 弦 的 不 动 点 ( f i x p o i n t o f c o s i n e ) , 这 是 一 个 数 学 常 数 。 它 只 是 重 复 地 从 1 . 0 开 始 调 用 M a t h . c o s , 直 到 结 果 不 再 改 变 , 对 于 这 里 指 定 的 e p s 精 度 会 产 生 0 . 7 3 9 0 8 5 1 3 3 2 1 5 1 6 1 1 的 结 果 。 最 终 代 码 相 当 于 这 种 更 传 统 风 格 的 代 码 : v a l e p s = 1 E 1 0 / / g o o d e n o u g h , c o u l d b e 1 0 ^ 1 5 p r i v a t e f u n f i n d F i x P o i n t ( ) : D o u b l e } 要 符 合 t a i l r e c 修 饰 符 的 条 件 的 话 , 函 数 必 须 将 其 自 身 调 用 作 为 它 执 行 的 最 后 一 个 操 作 。 在 递 归 调 用 后 有 更 多 代 码 时 , 不 能 使 用 尾 递 归 , 并 且 不 能 用 在 t r y / c a t c h / f i n a l l y 块 中 。 目 前 在 K o t l i n f o r J V M 与 K o t l i n / N a t i v e 中 支 持 尾 递 归 。 湘 I C P 备 2 0 0 0 0 6 0 7 号 1 湘 公 网 安 备 4 3 0 1 0 4 0 2 0 0 1 8 6 0 号
网站说明:www.dayux.top由网友主动性提交被名站导航整理收录的,名站导航仅提供网站的基础信息并免费向大众网友展示,www.dayux.top的IP地址:- 地址:-,百度PC权重为0、百度手机权重为0、百度收录为0条、360收录为0条、搜狗收录为0条、谷歌收录为0条、百度来访流量大约在-之间、百度手机端来访流量大约在-之间、www.dayux.top的备案号是-、备案主体是-、被百度收录的关键词有0个、手机端关键词有0个、该站点迄今为止已经创建未知。
内容声明:1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违规信息,如您发现违规内容,请联系我们进行清除处理!
4、本文地址:https://www.hornyrob.com/dianyingdh/9d13dfd31790a0c2ce65.html,复制请保留版权链接!