博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七周七语言(2)
阅读量:4974 次
发布时间:2019-06-12

本文共 666 字,大约阅读时间需要 2 分钟。

这周主要看了ruby,和prolog语言

对于ruby语言,ruby是解释型语言,对命令一条条解释,其实个人认为也可以先编译,在执行,加快效率,甚至可以和java的JIT一样,编译成本地语言,加快执行速度。

ruby明显特点就是动态性,变量不需要定义直接可以赋值,相对与java这样的静态语言,变量需要先定义变量名和变量类型,然后进行赋值,而ruby就可以直接进行赋值,赋值的过程包含在定义里面。这种特定对于开发效率非常高,但是排错的情况就比较复杂。

对于里面提到的鸭子类型,并没有太大的感觉,和接口有点类似,实现了某一个接口的类就具有接口的类型,唯一不同的是ruby没有接口,可以通过mixin机制来实现类的共通属性功能。

对于mixin机制,思路是实现多继承,组合类的功能。在java里面是没有办法做到多继承的,只能实现多个接口。但是如果一个类想实现多个其他类的功能,其实只能通过组合的方式进行,通过反射机制动态的给类增加功能,这个只能动态的进行。而ruby则可以通过module的方式,给类引入新的特性。

对于元编程,这个非常有用。和我们车写程序的思维有点类似,程序可以先分解成为几个独立功能,然后在细化功能。可以使用函数,然后在去实现函数,有一点意思,java里面是做不到的,因为java没有定义函数直接使用的花,就会报错。这一特性也是ruby的动态性决定的,执行的时候去找关联的函数。

转载于:https://www.cnblogs.com/aigongsi/archive/2013/01/25/2876031.html

你可能感兴趣的文章
15、vue项目封装axios并访问接口
查看>>
TopCoder SRM 570 题解
查看>>
oracle数据库中的异常处理
查看>>
oo第二次博客-三次电梯调度的总结与反思
查看>>
Objective-c官方文档 封装数据属性
查看>>
NGSQC toolkit
查看>>
高性能MySQL中的三星索引
查看>>
使用mobile.changePage()时出现的问题(转)
查看>>
form标签中id和name属性的区别
查看>>
JavaSE思维导图(三)
查看>>
linux C下多文件编译,以及Makefile的使用
查看>>
微信 6.5.1 for iOS发布 可以在朋友圈分享相册中的视频
查看>>
支付宝小程序正式上线公测 附开发者工具和开发文档
查看>>
读zepto核心源码学习JS笔记(2)--工具函数
查看>>
201521123096《Java程序设计》第九周学习总结
查看>>
软工网络15个人作业3——案例分析
查看>>
区块链-ICO-数字货币 (基础认识,和参加ICO入门)
查看>>
pyqt5环境变量踩坑记
查看>>
安装Oracle数据库和PLSQL连接数据库
查看>>
sprint boot 配置
查看>>