美文网首页
类型 & 变量

类型 & 变量

作者: 小小爱笑 | 来源:发表于2019-04-12 01:07 被阅读0次

go实现

类型

原生基本类型

int, float , string, [2]int...

原生的高级类型

[]int , map[string]string ...

自定义类型

type User struct {
Id int
Name string
}

指针类型

*int , *[]int , *User ....

接口类型

代表了一组方法集合

io.Reader,

type Provider interface {
Add()
}

变量

go是静态类型语言,每个变量都有一种已知类型,并且在编译器确定。

type MyInt int

var i int
var j MyInt

变量i的静态类型为int,j的静态类型为MyInt,尽管他们的底层类型相同,但他们的静态类型不同,未经转换前无法进行赋值。

只要某个具体值(非接口)实现了某个接口中的方法,该接口类型的变量就能存储它

var r io.Reader
r = os.Stdin
r = bufio.NewReader(r)
r = new(bytes.Buffer)

无论r保存了什么值,r的静态类型总是io.Reader。
接口类型变量存储了一对值,即赋予该变量的具体值,以及该变量的类型描述符。接口内部的对总是 (值, 具体类型) 的形式。
r 包含的 (值, 类型) 对可以形式化地描述为(tty*os.File

var empty interface{}
empty = w

空接口值 e 也将再次包含同样的一对 ( tty, *os.File )

参考资料

反射三法则
Go中接口值的表示

相关文章

  • 变量及资料类型

    变量及资料类型 变量的类型决定资料的类型 一份统计资料中可能包括所有的变量类型变量及资料类型示意图 变量类型 变量...

  • golang的值类型,指针类型和引用类型&值传递&指针传递

    一,变量类型 变量分为值类型,指针类型和引用类型。以如下变量定义和赋值语句为例: output: 值类型变量a,值...

  • Go 基础篇总结-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • Go 基础篇-变量

    一、Go内建变量类型 类型转换 type(varName) 二、变量定义 四种变量定义类型: 变量定义 三、变量和...

  • Python中几个重要的函数

    1. 获取变量类型的函数 type() 给变量赋值后,变量就具有确定的类型,同一变量赋值类型不同,变量的类型也就跟...

  • dart基础

    变量 动态类型or静态类型 变量类型: 内置类型 变量声明和赋值: Tips没有初始化的变量, 默认值都是null...

  • Groovy基本语法

    Groovy中的变量 1.变量类型(groovy中都是对象类型) 基本类型 对象类型 2.变量定义 强类型 声明的...

  • Python编程入门——基础语法详解(经典)

    一、基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型。内置的变量类型有如下几种:...

  • Python编程入门——基础语法详解(经典)

    一、基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型。内置的变量类型有如下几种:...

  • Bash变量的类型

    Bash变量的类型通常理解shell变量是弱类型的,或者无类型的,其实Bash变量是有类型的。 Bash变量一共有...

网友评论

      本文标题:类型 & 变量

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