interface和nil
package main
import (
"fmt"
)
func main() {
var a interface{}
// 獲取console輸入
fmt.Scan(&a)
fmt.Println(a)
}
輸出結(jié)果:
console ------------------------->
<nil>
package main
import "fmt"
func main() {
var a string
fmt.Scan(&a)
fmt.Println(a)
}
輸出結(jié)果:
console ------------------------->
123
123
- 問(wèn)題描述
第一種情況:編譯沒(méi)有報(bào)錯(cuò)耍休,可以執(zhí)行谋右,但是不能輸入。
第二種情況:編譯沒(méi)有報(bào)錯(cuò)育八,可以執(zhí)行均芽,可以正常操作。
- 解答疑問(wèn)
interface類(lèi)型再初始化单鹿,是沒(méi)有分配內(nèi)存空間給a變量掀宋,相當(dāng)于nil也就是指一個(gè)空指針。
當(dāng)定義字符串類(lèi)型的時(shí)候,初始化了變量劲妙,分配了內(nèi)存空間湃鹊,所以當(dāng)鍵盤(pán)輸入值時(shí),可以打印出來(lái)镣奋。