- 博客(40)
- 收藏
- 关注
原创 matlab 函数定义
在编辑器定义一个函数(多个输入,单个返回)保存为文件freebody.m,与函数名字相同。返回值为x注意,这边函数用的是点乘。两种方式均可以输入多个inputs and outputsfunction [a F] = acc(v2, v1, t2, t1, m)a = (v2-v1)./(t2-t1); %还是用点乘或点除F = m.* a;[ACC force] = acc(20,10, 5, 4, 1)ACC = 10force = 10.
2022-04-24 17:22:43
581
原创 Fabric简介
什么是fabricHyperledger Fabric 是超级账本中的区块链项目之一。和其他区块链技术一样,它有一个账本,使用智能合约,是一个参与者管理交易的系统。fabric是私有的和许可的,不同于其他区块链的公开的和非许可的,网络成员通过一个受信任的成员服务提供者(MSP)member service provider 来注册访问。Fabric支持创建通道的功能,通道内的成员与通道外的成员的交易账本不同。如商业过程中,公司向某些特定的成员提供特殊价格,而这个价格不希望其他参与者看到。共享账本共享
2020-10-18 08:56:55
2524
1
原创 Golang-反射01
反射的示意图反射的重要函数1.reflect.TypeOf()获取变量类型,返回reflect.Type类型2.reflect.ValueOf()获取变量的值,返回reflect.Value类型3.反射中 变量 空接口 reflect.Value可以相互转换
2020-10-11 19:47:46
134
原创 Golang-常量(const)
1.常量使用const修改2.常量在定义的时候,必须初始化3.常量不能修改4.常量只能修饰 bool 数值类型 string5.常量的类型编译时就要确定类型常量两种表示:1.const(a=1b=2)2.const{a = itoabc) //表示a赋0,b在基础上加1,c在b基础上加15.通过手字母的大小写控制范围...
2020-10-11 17:12:12
4536
原创 Golang-channel04(细节)
管道细节注意1.管道可以声明为只读或者只写:var chan1 chan int //可读可写var chan2 chan <- int//声明为只写var chan3 <- chan int//声明为只读
2020-10-10 21:15:09
183
原创 Golang-Channel03(协程+管道结合)
要求1.writeData协程向管道intChan写入50个整数2.开启一个readData协程,从管道intChan中读取writeData的数据3.主线程要求等两个协程完成后退出代码示例package mainimport( "fmt")func writeData(intChan chan int){ for i:= 0; i <= 1000; i++{ intChan <- i fmt.Println("写入的数据",i) } close(intCh
2020-10-08 15:22:29
522
原创 Golang-channel02(关闭,遍历)
关闭使用channel内置函数Close(),只能读,不能写,代码如下:package mainimport ( "fmt")func main(){ intChan := make(chan int, 3) intChan <- 100 intChan <- 200 close(intChan) //intChan <- 300 //通道已被关闭无法再写入 x , ok := <-intChan //但是还是可以继续读 fmt.Println(x,
2020-10-08 14:29:24
356
原创 Golang-channel01
管道1.管道本质是队列,先进先出2.管道是线程安全的,多个协程操作同一个管道时不会发生资源竞争问题3.channel有类型的,一个string的管道只能放string类型的数据基本使用声明/定义 channel:var 变量名 chan 数据类型如:var intChan chan intvar mapChan chan map[int]stringvar poicChan chan *Person注意:1)管道时引用类型2)管道必须初始化(make)之后才能写入数据入门演示p
2020-10-08 11:32:55
259
2
原创 Golang-goroutine03(使用时会产生的问题)
计算1-200的各个数的阶乘将结果放到map中,使goroutine完成package mainimport( "fmt")//计算1-200的各个数的阶乘将结果放到map中,使goroutine完成//思路//编写一个函数, 计算各个数的阶乘,放到map中//启动的协程多个,统计结果放入map中//map应该时全局的 //全局形式var ( myMap = make(map[int]int))func test( n int){ res := 1 for i:=1;
2020-10-08 09:51:08
136
原创 Golang-goroutine02(MPG模式+设置CPU数目)
MPGM —主线程P—协程执行所需上下文G—协程状态1:1)有三个M,作用在同一个cpu并发,作用在多个cpu为并行2)Go协程是轻量级的,可以很容易起上万个协程状态2:M0在运行G0时被阻塞,会创建另一个M1主线程,将其余的G1,G2挂到M1下面设置Cpu数目package mainimport( "runtime" "fmt")func main(){ cpuNum := runtime.NumCPU() //看有多少个CPU fmt.Println("cpuNum
2020-10-08 09:16:59
911
原创 Golang-goroutine(协程)01
引出计算1-90000中的素数1.传统方法用for循环判断2.用并发或者并行,分配给多个协程去完成协程一个go线程上可以跑多个go协程。go的主线程又成为go的线程或理解为进程。协程有独立栈空间,共享程序堆空间,调度由用户控制,是轻量级的线程。入门package mainimport( "fmt" "strconv" "time")func test(){ for i:=1; i<=10; i++{ fmt.Println("test() hello world"
2020-10-07 22:38:45
140
1
原创 Golang-单元测试02(细节注意)
1.测试用例文件名_test.go结尾,该文件包含TestXxxx函数,将该文件与被测试的文件放在相同包中2.测试函数必须是Test+被测试函数名(被测试函数名大写开头),最好是这样3.上例中TestAddUpper(t *testing.T),形参必须是 *tetsing.T4.一个测试用例文件,要包含多个测试用例函数5.go test 运行正确不提示,错误会输出;而go test -v 都会输出6.出现错误用t.Fatalf格式化输出错误信息,并且退出7.t.Logf输出相应日志8.go
2020-10-07 21:36:29
117
原创 Golang-单元测试01(testing)
原理理解命令行用 go test -vcal_test.go的代码是:package mainimport( _ "fmt" "testing")//编写测试用例,去测试addUpper是否正确func TestAddUpper(t *testing.T){ res := addUpper(10) if res != 55{ //传统形式 //fmt.Printf("addUpper(10) 期望值 %v 实际值 %v\n", 55, res) //testing中
2020-10-07 21:24:34
189
原创 Golang-json03(反序列化)
Unmarshal简介func Unmarshal(data []byte, v interface{}) errorUnmarshal函数解析json编码的数据并将结果存入v指向的值。应用场景web服务器(go语言): 数值,切片等 —序列化—>json字符串|传输|浏览器端:json ----反序列化——>还原数据形式案例演示(unmarshal)package mainimport( "fmt" "encoding/json")//反序列化成结构体type
2020-10-07 16:03:22
153
原创 Golang-json02(演示struct, map,slice 序列化)
json序列化是将有key-val结构的数据类型,序列化成json字符串。struct序列化encoding/json包中的func Marshal(v interface{}) ([]byte, error),接收一个空接口,即可以接收任何类型的数据,返回字符切片package mainimport( "fmt" "encoding/json")type Monster struct{ Name string Age int Sal float64 Skill string}f
2020-10-07 15:02:03
241
原创 Golang-json01(简介+数据格式)
json简介JSON(JavaScript Object Notation), 一种轻量级数据交换格式, key-value对。已经成为数据传输的主流格式。主要是序列化和反序列化。web服务器将go数组进行json序列化,之后传送给浏览器。浏览器收到json序列后,进行反序列化还原数组显示。json数据格式说明JSON是用键值对来保存数据的。如{“firstName":“Jack”},{" Name":“Tom”, “address”:[“北京”, “上海”]}。Json扩展十分灵活。json数据
2020-10-07 13:43:27
196
原创 5.1增加二叉树非递归后续遍历
//感谢MOOC里的大神,选了一种最为方便的写法//另外还可以在树结构中增加一个记录访问次数的选项//那个更容易理解,但是麻烦,也贴在后面typedef struct TREE{int data;int visit; //用来记录节点的访问次数struct TREE * left;struct TREE * right;}*BinTree , Tnode;void postr...
2019-08-17 09:00:14
87
原创 数据结构5.0二叉树的非递归遍历先序、中序
/**创建以下结果的二叉树,此二叉树结构是上面二叉树遍历的例子,可对比结果是否正确A/ B C/ \ D E F/ \ \ / G H I J k*///还差一个后序遍历和层次遍历#include <stdio.h>#include <stdlib.h>#include <stdbool.h>#defin...
2019-08-15 11:17:22
131
原创 数据结构4.0链表的应用--多项式加法与乘法
#include <stdio.h>#include <stdlib.h>/读入的话才用尾插法,头部保留空结点,插入读入完成后释放头部结点//主要结构是:读入,相加(判别相加是否系数为零),相乘(第一项先乘,后续在此基础上按指数大小顺序插入,如果指数大小一样系数相加为零,删除该点/typedef struct PSTNODE * polynomial;struct...
2019-08-15 08:09:54
186
原创 数据结构3.0栈的链表操作
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef struct SLNode{int data;struct SLNode * next;}*Lstack, Node;/*//为方便操作而生成一个头,一个尾指针//其实没有必要struct stack{Lst...
2019-08-11 16:33:53
73
原创 数据结构3.0顺序栈的push,pop
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef struct SNODE{int *data;int top;int MAXSIZE;}*stack, node;stack initi_stack(int n);bool is_full(stack plist)...
2019-08-10 21:54:20
1176
原创 递归例子之汉诺塔
#include <stdio.h>//只要将第一轮想明白就好了,千万别深究//递归出口:只有一个disk的时候//递归式子:n个盘子搬来搬去void hanio(int n, char a, char b, char c);int main(int argc, const int * argv){int n;printf(“input the number of di...
2019-08-10 15:21:27
95
原创 递归小例子,数字正序、逆序输出
#include <stdio.h>//正序void traverse(int n, int k);int main(void){int n;scanf("%d", &n);int lebal=1;int work = n;while (work/10 != 0){lebal= lebal *10;work /= 10;}traverse(n, le...
2019-08-10 14:53:24
588
原创 数据结构工具之冒泡、选择排序
#include <stdio.h>void sort2_maopao(int *arr,int n){int i, j;int tmp;//外循环记录循环比较次数,循环n-1次//内循环是元素下标,满足条件移动//注意,j<n-i,每一轮比完的元素放到一侧不用管了//即第一轮找到最大的或最小的放到一边,第二轮只要找第二大的,且不用和最大的比较for ( i =...
2019-08-09 12:07:39
70
原创 数据结构2.0链表基础操作
#include <stdio.h>#include <stdlib.h>#include <stdbool.h>typedef struct Node{int data;struct Node *pNext;}NODE, *PNODE;//创建链表;PNODE creat_list(void);void traverse_list(PNOD...
2019-08-06 11:29:42
132
原创 数据结构1.1顺序表的基础操作
对顺序表的基础操作,后续在此基础上升级望早日出山。#include <stdio.h>#include <stdbool.h>#include <stdlib.h>struct Arr{int *pBase;int len;//最大长度int cnt; //当前有效长度};void init_arr(struct Arr * array...
2019-08-06 07:29:24
209
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人