搭建最简单的区块结构

最近准备用go搭一个简单的区块链项目,虽说有十分详细的教程,但是还是有些地方不太容易理解(个...个人原因?),下面是一个极其简易的区块结构,主要运用了go中结构体和切片的特性。

代码

// 结构体 + 切片
// 后续学习的简易框架

package main

import "fmt"

type information struct {
	name string
	age  int
	home string
}

/* 		这一步很关键		*/
type list struct {
	informs []*information
}

func main() {
	var block list
	a := information{"猪猪", 13, "埃塞俄比亚"}
	b := information{"笨笨", 15, "阿尔及利亚"}
	c := information{"可爱", 16, "尼日利亚"}

	block.informs = append(block.informs, &a)
	block.informs = append(block.informs, &b)
	block.informs = append(block.informs, &c)

        //测试
	//fmt.Println(a)
	//fmt.Println(b)
        //fmt.Println(c)
	//fmt.Println(block.informs)

	for _, i := range block.informs {
		fmt.Printf("姓名: %s\n", i.name)
		fmt.Printf("年龄: %d\n", i.age)
		fmt.Printf("家住在:%s\n", i.home)
		fmt.Println()
	}
}

运行结果:

姓名: 猪猪
年龄: 13
家住在:埃塞俄比亚

姓名: 笨笨
年龄: 15
家住在:阿尔及利亚

姓名: 可爱
年龄: 16
家住在:尼日利亚

原文地址:https://www.cnblogs.com/newbase/p/12650371.html

时间: 2024-08-30 16:10:51

搭建最简单的区块结构的相关文章

比特币区块结构Merkle树及简单支付验证分析

在比特币网络中,不是每个节点都有能力储存完整的区块链数据,受限于存储空间的的限制,很多节点是以SPV(Simplified Payment Verification简单支付验证)钱包接入比特币网络,通过简单支付验证可以在不必存储完整区块链下对交易进行验证,本文将分析区块结构Merkle树及如何进行交易验证. 区块结构 在工作量证明中出现过一个区块信息截图: 细心的同学一定已经在里面发现了很多未讲的其他信息,如:时间戳,版本号,交易次数,二进制哈希树根(Merkle根)等. 我们来看看一个区块结构

[PhoneGap]开发环境搭建与简单应用

目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中.其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iphone则是基于C语言开发的.如果开发者编写的应用需要同时在不同的移动设备上运行的话,则必须要掌握多种开发语言.而为了进一步简化移动应用的编程,Nitobi公司推出了一套开源的移动应用解决方案PhoneGap(http://www.phonegap.com). PhoneGap是一款开源的手机应用开发

使用Resources类搭建Unity简单的资源管理工具类

Unity资源加载的方式有: 1.脚本拖拽(本地) 2.Resources加载(本地) ★ 3.AssetBundle加载(本地,远程[www])★ 本篇将使用Resources类搭建一个简单的资源管理工具类 Resources是Unity下的特殊文件夹,使用需自行创建Resources文件夹(命名必须正确) 使用Resources文件夹就需要用到Resources类的一些方法,如下: Resources类 Load 从Resources文件夹加载单个资源(可指定类型) LoadAll 从Res

用nodejs搭建一个简单的服务器

使用nodejs搭建一个简单的服务器 nodejs优点:性能高(读写文件) 数据操作能力强 官网:www.nodejs.org 验证是否安装成功:cmd命令行中输入node -v 如果显示版本号表示安装成功 [常用命令] 切换盘符 d:进入文件夹 cd nodejs返回上一级目录 cd..清屏 cls展示目录 dir复制文件名 选中右键--复制历史操作 上箭头 执行文件 node 文件名(在文件文件夹目录中)停止命令行 ctrl+c nodejs可以使用的ECMAScript.读写文件.数据库操

【Android进阶】Junit单元测试环境搭建以及简单实用

单元测试的目的 首先,Junit单元测试要实现的功能,就是用来测试写好的方法是否能够正确的执行,一般多用于对业务方法的测试. 单元测试的环境配置 1.在AndroidManifest清单文件的Application节点下,引入单元测试使用的库 2.在AndroidManifest清单文件与Application节点平行的节点中,添加instrumentation节点 下面是一个完整的配置的代码 <manifest xmlns:android="http://schemas.android.

学生成绩管理后台第二项任务:初步建模,搭建一个简单的网站

负责人:程琳茹 合伙人:李玉婷 签约员工:闫玉荣 前言:学生成绩管理后台,看起来是一个简单的项目,但是对于我们今后的发展很重要,建设一个管理后台有很多方法,这里我们主要使用Rstudio,在之后的文章中,会详细给出我们小组完成项目的过程与遇到的问题,欢迎大家借鉴,此外,同学们要积极参与讨论. 项目步骤:1.熟悉与安装Rstudio,并且配置好R内部环境. 2.建立好文件所存放的位置与确保文档可以正常使用. 3.搭建一个简单的网站,分别分为server.R端口与ui.R端口. 4.搭建好网站后,插

使用 Nodejs 搭建一个简单的Web服务器

使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容 3.显示图片资源 4.自动下载以.apk/.

ttserver搭建及简单操作

Tokyo Cabinet 是一款 DBM 数据库,该数据库读写非常快,哈希模式写入100万条数据只需0.643秒,读取100万条数据只需0.773秒,是 Berkeley DB 等 DBM 的几倍.利用Tokyo Tyrant构建兼容Memcached协议.支持故障转移.高并发的分布式key-value持久存储系统.key-value分布式存储系统查询速度快.存放数据量大.支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询. Tokyo Tyrant 是由同一作者开发的 Tokyo

PHP小菜的学习之路(一) PHP环境搭建和简单调试

前面提到,反省不是目的,目的是要改变自己. 最近自己在业余时间在研究微信公众平台开发,在成为开发者的时候,URL一直不知道该怎么写,百度云开发者平台也没有提供对应C#的服务器.下载了个PHP的照葫芦画瓢,连蒙带造的简单的做了一个小的Demo.对于里面语法什么自己完全不懂,果然是彻彻底底的PHP菜鸟.因为想做微信平台开发,而且自己也没有自己的服务器和域名,又不打算买一个,就只能用PHP了.这也坚定了我想业余时间,简单的学习一下PHP的决心. 也许有人看到这里会说,你丫C#搞了两年还是菜鸟,现在还想