getValue 
  e.g.
val id by longID { 123L }作用域与应用场景
LongIDDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val id by longID { 123L }
}你可以修改为
// Good
class Foo {
    private val idValue = 123L
    // 委托对外公开的属性而非内部应用的属性
    private val id by longID { idValue }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val id by longID { 123L }
   // 下面会产生3个 ID 对象
   useID(now)
   useID(now)
   useID(now)
}你可以修改为
fun foo() {
   // 直接使用 ID 本身的API即可。
   val id = 123L.ID
   useID(id)
   useID(id)
   useID(id)
}Since
3.1.0
See also
e.g.
val id by intID { 123 }作用域与应用场景
IntIDDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val id by intID { 123 }
}你可以修改为
// Good
class Foo {
    private val idValue = 123
    // 委托对外公开的属性而非内部应用的属性
    private val id by intID { idValue }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val id by intID { 123 }
   // 下面会产生3个 ID 对象
   useID(now)
   useID(now)
   useID(now)
}你可以修改为
fun foo() {
   // 直接使用 ID 本身的API即可。
   val id = 123.ID
   useID(id)
   useID(id)
   useID(id)
}Since
3.1.0
See also
e.g.
val id by uIntID { 123u }作用域与应用场景
UIntIDDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val id by uIntID { 123u }
}你可以修改为
// Good
class Foo {
    private val idValue = 123u
    // 委托对外公开的属性而非内部应用的属性
    private val id by uIntID { idValue }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val id by uIntID { 123u }
   // 下面会产生3个 ID 对象
   useID(now)
   useID(now)
   useID(now)
}你可以修改为
fun foo() {
   // 直接使用 ID 本身的API即可。
   val id = 123u.ID
   useID(id)
   useID(id)
   useID(id)
}Since
3.1.0
See also
e.g.
val id by uLongID { 123u }作用域与应用场景
ULongIDDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val id by uLongID { 123u }
}你可以修改为
// Good
class Foo {
    private val idValue: ULong = 123u
    // 委托对外公开的属性而非内部应用的属性
    private val id by uLongID { idValue }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val id by uLongID { 123u }
   // 下面会产生3个 ID 对象
   useID(now)
   useID(now)
   useID(now)
}你可以修改为
fun foo() {
   // 直接使用 ID 本身的API即可。
   val idValue: ULong = 123u
   val id = idValue.ID
   useID(id)
   useID(id)
   useID(id)
}Since
3.1.0
See also
将一个 CharSequence (通常为 String) 委托为 CharSequenceID.
e.g.
val id by stringID { "123" }特别的,你可以在 stringID 或 charSequenceID 的作用域中使用一些快捷能力, 例如通过 random 快速表示委托为一个随机字符串。
val id by stringID { random }作用域与应用场景
CharSequenceIDDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val id by stringID { "123" }
}你可以修改为
// Good
class Foo {
    private val idValue = "123"
    // 委托对外公开的属性而非内部应用的属性
    private val id by stringID { idValue }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val id by stringID { "123" }
   // 下面会产生3个 ID 对象
   useID(now)
   useID(now)
   useID(now)
}你可以修改为
fun foo() {
   // 直接使用 ID 本身的API即可。
   val id = "123".ID
   useID(id)
   useID(id)
   useID(id)
}Since
3.1.0
See also
将一个毫秒时间戳委托为 Timestamp.
e.g.
val now by timestamp { System.currentTimeMillis() }特别的,如果你希望委托时间为当前时间,即 System.currentTimeMillis, 可以使用 TimestampDelegate.now 快速书写:
val now by timestamp { now }作用域与应用场景
TimestampDelegate.getValue 委托主要应用于对外的公开属性场景, 通过委托来减少某个对象在初始化时产生过多的简单包装器。
你需要避免一些错误的做法:
- 避免在一个类的私有作用域使用此委托,例如使用一个私有属性作为委托目标如下: 
// Bad
class Foo {
   // 私有属性没有代理的必要
   private val now by timestamp { now }
}你可以修改为
// Good
class Foo {
    private val nowMillis = System.currentTimeMillis()
    // 委托对外公开的属性而非内部应用的属性
    private val timestamp by timestamp { nowMillis }
}- 避免在局部作用域使用此委托,例如一个方法中如下: 
// Bad
fun foo() {
   val now by timestamp { now }
   // 下面会产生3个 Timestamp 对象
   useTimestamp(now)
   useTimestamp(now)
   useTimestamp(now)
}你可以修改为
fun foo() {
   // 直接使用 Timestamp 本身的API即可。
   val now = Timestamp.now()
   useTimestamp(now)
   useTimestamp(now)
   useTimestamp(now)
}Since
3.1.0