golang类型

  • 类型的本质

  • 新类型声明方式
    • 创建新值:使用值接收者声明方法
    • 修改当值:使用指针接收者声明方法
    • 值传递
      • 按值传递(数据副本)
      • 按指针传递(数据共享)
    • 内置类型
      • 数值类型(int,double,float)
      • 字符串类型(string)
      • 布尔类型(bool)
    • 引用类型
      • 每个引用类型的变量都包含一个纸箱底层数据结构的指针
        • 切片
        • 映射
        • 通道
        • 接口
        • 函数
        • 字符串(从技术细节上说)
        • 结构类型
          • 结构类型可以用来描述一组数据值
  • 自定义类型

  • 类型定义
		type xxx struce{
			name  string
			age int
		}
  • 自定义变量申明
var xx user  //声明并初始化为零值

xx := user{ //声明并初始化所有字段
	  name :  "Bob",
	  age :  10,
    //字段名与值用“:”分隔,不同字段使用“,”分隔,且需要“,”结束,对字段顺序没有要求
}


xx := user{
	"Lisa",12
    //不写字段名,直接初始化值,字段顺序必须与类型定义时的字段顺序一致。
}
  • 类型转换
    • golang编译器不会对不同类型的值做隐式转换,几遍两个类型互相兼容,也不能相互赋值。

  • 方法

  • 方法能给自定义的类型添加行为
  • 方法实际上也是函数,在关键字func和方法名之间增加了一个参数(接收者)
  • 接收者
    • 值接收者
      • 使用类型值的副本参与运算,不影响使用该变量的其他函数
    • 指针接收者
      • 使用类型变量的地址参与运算,会影响其他使用该变量的地方
  • 指针接收者可以调用值接收者声明的方法
  • 嵌入类型

    • 嵌入类型是将已有的类型直接声明在新的结构类型中。
    • 被嵌入的类型被称为新的外部类型的内部类型
    • 外部类型拥有内部类型相关的所有标识符(字段或方法)(类似JAVA继承)。
    • 外部类型可以通过声明同名的标识符来覆盖内部类型的标识符(字段或方法)
  • 接口

    • 接口是用来定义行为的类型。

    • 方法集
      • 方法集定义了一组关联到给定类型的值或者指针的方法。定义方法时使用的接收者类型决定了这个方法关联到值还是关联到指针,或者两个都关联
  • 多态

    • 多态是指代码可以根据类型的具体实现采取不同的行为的能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值