zoukankan      html  css  js  c++  java
  • golang 自定义结构体(与其他语言对象类似)

     1 /*
     2 
     3     结构体变量:
     4         结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存,
     5         因此必须在定义结构体并实例化后才能使用结构体的字段。
     6         type 类型名 struct {
     7             字段1 字段1类型
     8             字段2 字段2类型
     9 10         }
    11     指针类型的结构体 :new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体
    12         1 var o *类型名 = new(类型名)
    13         2 o := &类型名{}
    14         赋值 :
    15         1 var o *类型名 = new(类型名){字段1:值}
    16         2 o.字段1 = xxx
    17         3 p := &struct {// 定义
    18             name string
    19         }{// 初始化
    20             name:"lizi",
    21         }
    22     结构体方法:
    23         1 每个方法只能有一个接收器(分: 非指针类型 和 指针类型 接收器)
    24         2 非指针类型接收器: 当方法作用于非指针接收器时,Go语言会在代码运行时将接收器的值复制一份,在非指针接收器的方法中可以获取接收器的成员值,但修改后无效
    25         3 指针类型接收器: 指针类型的接收器由一个结构体的指针组成,更接近于面向对象中的 this 或者 self
    26         func (接收器变量 接收器类型) 方法名(参数列表) (返回参数) {
    27             函数体
    28         }
    29         例:
    30         type ObjectType struct{id int}
    31         func (o *ObjectType) SetId(id) int{
    32             o.id = id
    33             return id
    34         }
    35         o := new(ObjectType)
    36         o.SetId(0)
    37         结构内嵌特性:
    38         1 内嵌的结构体可以直接访问其成员变量
    39         2 内嵌结构体的字段名是它的类型名
    40         类型内嵌
    41 */
    42 package info_struct
  • 相关阅读:
    给video添加自定义进度条
    高德地图鼠标获取经纬度
    高德地图行政区域划分
    面试经验之谈
    Hybrid App 开发模式
    运维 08 常用服务安装部署
    运维 07 Linux系统基础优化及常用命令
    运维 06 vim与程序员
    运维 05 Shell基本命令
    运维 04 Shell基础命令(二)
  • 原文地址:https://www.cnblogs.com/weihexinCode/p/12317058.html
Copyright © 2011-2022 走看看