八、结构体和接口

结构体定义:

和C++ 一样,Golang的结构体也是封装数据。可以说是面向对象吧。

结构体的组合函数:

package main

import (

    "fmt"

)

type Node struct {

    x, y int

}

// 结构体外接函数(能不能在结构体内写,目前还不清楚能不能在内部定义

func (node Node) area() (res int) {

    res = 0

    res = node.x * node.y

    return

}

func main() {

    var node = Node{1, 2}

    fmt.Println(node.area())

}

结构体可以内嵌结构体类型的数据

接口:

和C++ 的虚函数类似(实现机制目前还不清楚)

package main

import (

    "fmt"

)

// 定义接口

type Phone interface {

    // 定义方法

    call()

}

type Iphone struct {

}

type Nokiaphone struct {

}

func (nokiaphone Nokiaphone) call() {

    fmt.Println("this is Nokiaphone")

}

func (iphone Iphone) call() {

    fmt.Println("this is Iphone")

}

func main() {

    var phone Phone

    phone = new(Iphone)

    phone.call()

    phone = new(Nokiaphone)

    phone.call()

}

原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/9057903.html

时间: 2024-08-30 14:13:51

八、结构体和接口的相关文章

换个语言学一下 Golang (9)——结构体和接口

基本上到这里的时候,就是上了一个台阶了.Go的精华特点即将展开. 结构体定义 上面我们说过Go的指针和C的不同,结构体也是一样的.Go是一门删繁就简的语言,一切令人困惑的特性都必须去掉. 简单来讲,Go提供的结构体就是把使用各种数据类型定义的不同变量组合起来的高级数据类型.闲话不多说,看例子: type Rect struct { width float64 length float64 } 上面我们定义了一个矩形结构体,首先是关键是type表示要定义一个新的数据类型了,然后是新的数据类型名称R

C#学习记录4——结构体,接口

1.结构体 对于C++语言来说,其实结构体和类几乎没有什么太大的区别.类能够实现的功能,使用结构体大部分也可以. 不过,在C#里面,我们把结构体看作是一种轻量的类的替代品.它和类一样有构造方法,属性,成员属性/数据,甚至是操作符.注意struct构造方法必须有传入参数. 当然struct也不是完全支持类的所有功能的. 首先,结构体无法进行继承.也就是说,结构体不想类那样灵活,代码也无法复用. 其次,也是非常重要的一点:结构体是一种值类型,而类是引用类型.这两种类型的区别,可以查看C#学习记录3上

c#学习笔记之结构体和接口

一.结构体 个人认为结构体就是一种简化的类,类和结构体的功能基本上差不多.但是,结构体与类在语法以及使用上也有一定的区别. 1.结构体是值类型(value types),而类是引用类型(reference types) 2.不像类一样,结构体可以不使用new来实例化一个对象. 3.结构体能声明构造函数,但是必须传入参数. 4.结构体不能从另一个结构体或类继承. 结构体的声明: public struct man { methods; } 二.接口(interface) C#中只允许单继承,也就是

结构体作为接口的注意事项

在后端向前端回复数据时,需要将结构化数据通过网络传输给前端,而网络传输是字节流传输,前端收到的是一段数据,那么,问题就落脚在如何解析这段数据. 很多请求的场景,返回的条数是动态变化的,比如订单数量.用户每下一个订单,那么请求返回的数量就会加1.这时候,如何较好的返回动态数据呢?这个看使用怎样的存储格式来承载可变长度的数据返回.就目前已知的处理方法: 使用 json 格式 使用 protobuf 格式 使用 struct 格式 由于工作需要,这里使用 struct 格式来进行数据的包裹. 固定长度

C 碎片八 结构体&枚举&联合

一.结构体 1, 结构体定义 结构体类型的定义:任意数据类型变量的集合,用于描述一个具体的事物的信息.在C语言中描述一件事物一般都是用结构体 声明结构体类型的格式: struct  结构体名 {成员列表}: 一般形式: //结构体定义一般形式 struct 结构体名 { 成员变量1; //成员变量后面是';' 成员变量2; .... }; //这里最后加';' 不能省略 例: struct Student { char name[30]; int age; double score; }; 说明

C语言学习入门 (八) 结构体和枚举

结构体 它允许内部的元素是不同类型的 结构体的定义 //结构体类型: struct Person { char name[20]; //char *name; int age; float weight; }; //定义一个结构体变量,定义变量时才分配存储空间 structPerson person;    //与类型定义一起使用 struct Student {  //结构体类型与变量同时定义 char *name; int age; } stu; struct {  //省略类型,结构体变量

C#学习笔记之结构体

1.概述 结构是一种与类相似的数据类型,不过它较类更为轻量,一般适用于表示类似Point.Rectangle.Color的对象.基本上结构能办到的类全都能办到,但在某些情况下使用结构更为合适,后面会有提到. 结构具有以下特点: 结构可以实现接口. 结构可以声明带参数的构造函数. 结构不能声明默认构造函数(没有参数的构造函数)或析构函数. 结构是值类型,而类是引用类型. 实例化结构体时可以不使用new运算符. 结构类型是不可抽象.隐式密封的,故不能使用abstract和sealed修饰符. 在结构

面向对象基础——结构体

1.结构体的语法 定义的时候需要使用关键字struct [public] struct 结构名 { public 类型名 变量名; … } 我们常见的结构体:System.Drawing.Point.Size.Color 注意: 1.结构使用时可以new,也可以不new.如果不new,则使用前必须为结构成员赋值. 2.在结构中不能为变量直接赋初值,除非const(常量).static(静态变量) 2.结构体与类 它们是 .NET Framework 中的通用类型系统的两种基本构造.两者在本质上都

浅析C#中的结构体和类

类和结构是 .NET Framework 中的常规类型系统的两种基本构造. 两者在本质上都属于数据结构.封装着一组总体作为一个逻辑单位的数据和行为. 数据和行为是该类或结构的"成员",它们包括各自的方法.属性和事件等 对于C/C++程序员来说.结构体和类的差别非常小.仅仅是结构体的默认成员变量为public,类的默认成员变量为private. 可是对于C#来说,结构体和类有非常多的不同. 首先来谈一谈为何须要结构体: 最主要的原因就是结构体有能力去管理.使用不同数据类型的组合. .NE