struct : 结构体 // 1. 用来自定义复杂数据结构 // 2. struct里面可以包含多个字段(属性) // 3. struct类型可以定义方法,注意和函数的区分 // 4. struct类型是值类型 // 5. struct类型可以嵌套 // 6. Go语言没有class类型,只有struct类型 struct的定义 struct 声明: type 标识符 struct { field1 type field2 type } // 示例: type Student struct {…
接招吧,看代码: package main import "fmt" //二叉树结构体 //如果每个节点有两个指针,分别用来指向左子树和右子树,我们把这样的结构叫做二叉树 type Student struct { Name string Age int Score float32 left *Student right *Student } func trans(root *Student) { if root == nil { return } //fmt.Println(root…
GoLang获取struct的tag内容:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( "fmt" "reflect" // 这里引入reflect模块 ) type User struct { Name string "user name" //这引号里面的就是tag Passwd string "user passsword&…
C#学习单向链表和接口 IList<T> 作者:乌龙哈里 时间:2015-11-04 平台:Window7 64bit,Visual Studio Community 2015 参考: MSDN 索引器(C# 编程指南) <数据结构(C#语言版)>下载 When to use IEnumerable, ICollection, IList and List 章节: 单向链表元素 定义单向链表操作接口 逐步实现单向链表 正文: 前面学习了 IEnumerable<T>.I…
链表=>二叉树=>平衡二叉树=>红黑树=>B-Tree=>B+Tree 1.链表 链表结构是由许多节点构成的,每个节点都包含两部分: 数据部分:保存该节点的实际数据. 地址部分:保存的是下一个节点的地址. 链表的特点: 结点在存储器中的位置是任意的,即逻辑上相邻的数 据元素在物理上不一定相邻 访问时只能通过头指针进入链表,并通过每个结点的 指针域向后扫描其余结点,所以寻找第一个结点和最后一 个结点所花费的时间不等 链表的优点: 数据元素的个数可以自由扩充 .插入.删除等操作不…
Golang中操作数据库已经有现成的库"database/sql"可以用,但是"database/sql"只提供了最基础的操作接口: 对数据库中一张表的增删改查等操作,必须手动编写sql string,这通常都是一个写死的字符串(Hard-Code), 并且需要手动维护sql中字段与Golang中的变量的映射关系,这扩展性很差,且非常容易出错. 通常情况下,我们期望Golang中存在一个Struct与DB中的一个Table建立一个映射关系(Mapper), 之后我们…
原文链接: https://sosedoff.com/2016/07/16/golang-struct-tags.html struct是golang中最常使用的变量类型之一,几乎每个地方都有使用,从处理配置选项到使用encoding/json或encoding/xml包编排JSON或XML文档.字段标签是struct字段定义部分,允许你使用优雅简单的方式存储许多用例字段的元数据(如字段映射,数据校验,对象关系映射等等). 基本原理 通常structs最让人感兴趣的是什么?strcut最有用的特…
接口详解 // 举例:sort包中的 Sort 函数,如下: func Sort(data Interface) Sort sorts data. It makes one call to data.Len to determine n, and O(n*log(n)) calls to data.Less and data.Swap. The sort is not guaranteed to be stable. (Sort 对 data 进行排序. 它调用一次 data.Len 来决定排序…
从合并链表聊递归 递归是工程师最常见的一种解决问题的方式,但是有时候不容易真正掌握.有人说是看起来很简单,自己写起来会费点劲. 最著名的例子就是斐波那契数列(Fibonacci sequence),通过寻找递推公式来计算出结果. 而最近刷到的一道合并链表的算法题,也可以使用递归来实现.下面看看题目描述吧: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2…
这是本系列的第一篇文章,golang拾遗主要是用来记录一些遗忘了的.平时从没注意过的golang相关知识.想做本系列的契机其实是因为疫情闲着在家无聊,网上冲浪的时候发现了zhuihu上的go语言爱好者周刊和Go 101,读之如醍醐灌顶,受益匪浅,于是本系列的文章就诞生了.拾遗主要是收集和golang相关的琐碎知识,当然也会对周刊和101的内容做一些补充说明.好了,题外话就此打住,下面该进入今天的正题了. 指针和接口 golang的类型系统其实很有意思,有意思的地方就在于类型系统表面上看起来众生平…