磕磕碰碰,勉强过关
今天客户过来,面试了一下,技术上的问题居然基本都没有答上,自己很不满意啊。
下面是提的一些问题:
TCP/IP的七层网络模型是什么?
由于我之前提到了我看过TCP/IP协议,他于是问了下,哪知道我居然忘了,我说:“从下往上说,有物理层,链路层,网络层,传输层,会话层,应用层。少了一层……其实我比较熟悉的是五层模型,哎,失误啊!
正确的七层模型是:
物理层,链路层,网络层,传输层,会话层,表示层,应用层。
Module你知道吧,应该怎么使用它呢?
有两种使用方法,一是定义在类内部的,二是通过外部引用使用(extend)。我忘记内部的类怎么使用它……
参考:
1. ruby只是简单的产生一个指向模块的引用,用include可以使用,但是如果模块如果在另外的文件,需要先使用require将文件加载进来。
2. extend的使用方法也和include类似,不过一个是内部,一个是外部。具体的见例子:
参考:
Duck Typing只需要记住一件事,对象的类型只根据它能做什么而不是它的类来确定的。
举个例子,如果要把歌曲信息添加到一个字符串里面去,通常会这样写:
如果使用Duck Typing来编写的话:
我们忽略对象的类,以对象的能力(是否支持<<)来判断是不是duck,如果是,一切都可以正常运行,否则的话,也会抛出异常。省略检查类型会让代码变得非常灵活。