我知道.also { }旨在用于日志记录。这正是我想要做的。
var count = 1
count++.also { print("count is $it") }
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我希望日志是
计数为 2
但它实际上打印:
计数为 1
这里也有不同的使用方式吗?
您的问题与also.
您正在使用后缀 ( count++) 增量运算符,它返回变量在增量之前的值,即1.
如果您使用前缀 increment ( ++count) 运算符,它将首先分配新值,然后返回它,在本例中为2。请注意,在这种情况下您需要使用括号:
(++count).also { print("count is $it") }
Run Code Online (Sandbox Code Playgroud)
您提到它also用于日志记录。我不认为这是真的。它只是一个作用域函数,它在 labmda 中提供接收器作为it(或你命名的)并返回接收器。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |