【问题标题】:What does wrapping a type in () do and when should I use it? Golang [duplicate]在 () 中包装类型有什么作用,我应该什么时候使用它? Golang [重复]
【发布时间】:2015-12-01 22:15:37
【问题描述】:

在 () 中包装一个类型究竟做了什么,我应该什么时候使用它?例如。 blah.(*int)

【问题讨论】:

标签: go


【解决方案1】:

这是一个type assertion。类型断言用于将接口类型中的值提取为其他类型。

表达式blah.(*int) 断言blah 中值的类型是*int。如果断言成立,则表达式的值是存储在blah 中的值,作为*int。如果断言不成立,则表达式恐慌。

可以在赋值中使用一种特殊形式的类型断言来测试断言:

 ip, ok := blah.(*int)

如果 blah 中的值为*int,则该值存储在ip 中并且ok 设置为true。否则,ip 设置为零值,ok 为 false。

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 2011-02-21
    • 2012-06-02
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2011-01-18
    • 2011-08-18
    • 2017-03-21
    相关资源
    最近更新 更多