美文网首页
结构体-常不变语言

结构体-常不变语言

作者: wy2010344 | 来源:发表于2017-11-20 14:43 被阅读0次

概述:

跟js差别不大,但Object\Array\Value默认定义好就是不可变的。没有变量,只有绑定像lisp。但需要副作用,副作用是get\set函数的Object。

比如字符串对象,可能是char[]+Length的对象,只存储最简与自己相关的数据,操作集成在第三方库中,如String\Object\Array。

结构体不应该取部分,只能用.操作符访问与传递,可以构造成为其它的部分??

对写编写者友好了,能更大范围地明确哪些受了副作用的影响,但仍然存在副作用且可传递副作用。是没有希望的,还得寄望得类似vue-react这种树状的局部副作用语言。

实现上,强类型结构体,是结构化语言,一经构造(类似js的Object与Array的构造)后只读不可打开。结构体更像契约。由于没有类,函数使用闭包替代类。组件-类有确定的构造函数,而不是js的Object或Array式构造。构造函数的参数却是契约的、临时调用实现、js的Object或Array的。比如

//声明返回特定类型
var a=function(p){
  var me={
  };
  return me;
};
//调用时的参数是临时构造、满足契约
a({
});

强类型的好处自然是字典向数组方向的编译优化。
默认构造函数{}或[],自定义构造函数(用函数封装),是否可能函数参数也有自定义构造函数呢(不太好,注入只能是某个键)
还有闭包回调的参数-函数体实现。
函数调用必须带键,传统的类C++语言没有键,只有a.setB(xx).setC(yy).setD(xx).build()的构造过程,我觉得不好,易遗漏,默认值。而kotlin的扩展函数的注入——结果很好看,整体不喜欢,不喜欢面向对象,不可分割的只是最小无冗余集合,其它第三方库函数都通过这个最小集合来组装实现。

必须改造函数,使满足结构化的强类型,同时有构造过程。类就是覆盖结构体的默认构造过程(js式的构造)


//默认构造函数即为{x:xxx,y:xxx}
struct A {}
//重写默认构造函数
struct B{} function(p){}
//更完整的
B:Struct{//返回结构体}function(p){//构造函数}Struct{//参数结构体}

因为有值存储、字典存储、数组存储,外延有文件存储、数据库存储等副作用。又比如DOM上节点的属性存取,如果不知道内部实现,都是调用函数,调用函数传递不变结构体,永远只是创造与消耗,但因为创建实例,相当于动态创建了函数。函数是不可变实体唯一引用,有唯一副作用效果,有副作用的函数是针对性的,而不是类似+-*/有普适性,因为函数依赖创建的闭包环境,不同运算结果出来时代码中同一处函数不同。

JSON万能,比lisp好,有字典类型,但需要访问字典类型的键的方法,点访问符甚至不必是数组的[]访问。

相关文章

  • 结构体-常不变语言

    概述: 跟js差别不大,但Object\Array\Value默认定义好就是不可变的。没有变量,只有绑定像lisp...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • 12-Go语言结构体

    结构体 结构体的基本概念 什么是结构体Go语言中的结构体几乎和C语言中的结构体一模一样都需要先定义结构体类型, 再...

  • Golang 学习笔记四 结构体

    一、结构体 《快学 Go 语言》第 8 课 —— 结构体1.结构体类型的定义结构体和其它高级语言里的「类」比较类似...

  • 结构体

    结构体初识 结构体指针 结构体的匿名字段 结构体嵌套 Go语言中的OOP

  • 13-GoLang结构体

    结构体 Go语言中的结构体几乎和C语言中的结构体一模一样都需要先定义结构体类型, 再定义结构体变量都是用来保存一组...

  • 嵌入式学习笔记19.11.25

    c语言结构体 结构体一般定义全局变量 struct stu{//struct 定义结构体 stu 结构体名称 in...

  • Tank技术【3-6】GoLang语法实战学习(4)

    九、结构体 Go语言的结构体和C语言是类似的。定义结构体如下: 使用结构体有两种办法: 后两个是直接用:=赋值来声...

  • C语言 13 结构体数组

    C语言 13 结构体数组 结构体数组的定义 结构体数组初始化 结构体成员的使用 格式 : 字符串成员的处理 结构体...

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

网友评论

      本文标题:结构体-常不变语言

      本文链接:https://www.haomeiwen.com/subject/iuevvxtx.html