美文网首页golang成长记
golang问题interface和nil

golang问题interface和nil

作者: Tim_SSS | 来源:发表于2018-07-06 18:27 被阅读0次

    interface和nil

    • 上菜代码
    package main
    import (
        "fmt"
    )
    func main() {
        var a interface{}
        // 获取console输入
        fmt.Scan(&a)
        fmt.Println(a)
    }
    输出结果:
    console ------------------------->
    <nil>
    
    • 对比代码
    package main
    import "fmt"
    func main() {
        var a string
        fmt.Scan(&a)
        fmt.Println(a)
    }
    输出结果:
    console ------------------------->
    123
    123
    
    • 问题描述
      第一种情况:编译没有报错,可以执行,但是不能输入。
      第二种情况:编译没有报错,可以执行,可以正常操作。
    • 解答疑问
      interface类型再初始化,是没有分配内存空间给a变量,相当于nil也就是指一个空指针。
      当定义字符串类型的时候,初始化了变量,分配了内存空间,所以当键盘输入值时,可以打印出来。

    相关文章

      网友评论

        本文标题:golang问题interface和nil

        本文链接:https://www.haomeiwen.com/subject/gwpbuftx.html