kotlin - kotlin `.also {}` 函数的执行顺序
问题描述
我知道.also { }
旨在用于记录。这正是我想做的。
var count = 1
count++.also { print("count is $it") }
在这个例子中,我希望日志是
计数为 2
但它实际上打印:
计数为 1
在这里也有不同的使用方式吗?
解决方案
您的问题与also
.
您正在使用后缀 ( count++
) 递增运算符,它返回变量在递增之前的值,即1
.
如果您使用前缀增量 ( ++count
) 运算符,它将首先分配新值,然后返回它,在这种情况下为2
。请注意,在这种情况下您需要 paratheses:
(++count).also { print("count is $it") }
您提到这also
是用于记录的。我不认为这是真的。它只是一个作用域函数,它在 labmda 内部提供接收器it
(或您命名它)并返回接收器。
推荐阅读
- javascript - Javascript函数被重复调用
- ruby-on-rails - 如何查找所有包含空文件的记录?
- html - 是什么?
- javascript - Ajax creating duplicate forms until page reloads
- sql - GridView控件更新时找不到id
- bash - 如何在Mac上列出文件名中包含特定字符串的文件夹中的所有文件?
- laravel - 如何在 AWS Lightsail 上更改 nginx 文档根目录?
- rust - 除了使用 move 或 Box 之外,是否可以转移所有权?
- algorithm - 如何在有向图中找到最短的有向环?
- r - 用于空间点模式分析的 Kcross - 在 R 中