知乎有什么优点?

  1. 纯粹的面向对象:在 Ruby 的世界里一切都是对象,最大程度地维持了 OOP 的一致性。比方说在不完全面向对象的 Java 中,整型字面量是基本类型而不是对象,于是你不能像 48.toString() 这样调用方法。而在 Ruby 里你经常能看到 3.years.ago 这样直逼自然语言的表达,和像 10007.prime? 这样便利的语法,这是很多语言没去想或是没去做的。
  2. 方法的链式调用:这也是一致性的话题,Ruby 不会像 Python 一样突然冒出 len() 之类的全局函数硬生生地打断方法链。拿 A+B Problem 举个例子,Ruby 可以写成: 这是符合大多数人的思维过程的:读入一行、按空格分割、转为整型、求和。而如果是 Python 会写成这样: 如果不是事先考虑好整个流程,写完 split() 你要掉过头来再补上两个全局函数,写起来不够顺手。Ruby 2.3 引入了新的运算符「&.」,这相当于 Swift 中的可选链「?.」,当方法链上某一环出现 nil 时能够默默地失败并返回 nil 而不抛出错误。这时链式调用中出现全局函数就不只是不顺手的问题了,为了类型安全可能要多写不少代码。
  3. 各种甜得不行的语法糖:最明显的还是方法调用可以省略括号这一点。Unix shell 之所以屹立不倒,其中一大原因就是参数不需要括号、逗号,否则这脚本写起来简直是折磨。这个语法糖也很适合 DSL,没学过 Ruby 真的很难看出下面是完全符合语法规范的代码,看上去更像是需要另外解析的专用测试语言:
  4. 可以任意扩展已有的类:比如说你可以打开 String 加点私货进去,以后可以直接 "Nanasemaru".moe? 这样在已有类型上调用自己的方法,将 OOP 进行下去。越来越多的语言也都支持了这一特性,譬如 Swift / C# 等等。
  5. 元编程:以上的种种特性其实也是在为元编程奠定基础,另外,通过 method_missing 来动态处理方法简直是黑魔法,Rails 的 Active Record 就是这样把一个个属性映射到数据库的。
  6. 其他一些新奇的地方,大写字母开头就是常量、实例变量强制私有等等,都是把习惯上的约定上升到了语法层次,这部分就是看个人喜好了。我个人其实也很喜欢 Python 用缩进表示语句块的做法,这也是上述思想的体现;不过 Ruby 不这样设计也带来了益处,Python 没有关键字表示代码块结束使得 django 用了自己的一套模板语言,而
}

你说的包裹式是wrapper嘛?wrapper的话,相比embedding(嵌入)选择的方式更加直接,针对性更强。

就像每次考试有人给你批改,你下次再考会比较大可能有提升(即直接通过评估封装在一起的分类器的结果,来改进选择)。

但包裹式复杂度高,例如封装在一起的分类器很复杂的话,包裹式会造成整个算法复杂度过高的情况。

}

这,就是二次元,爱了爱了(√)

各种zz内容与各种沙雕评论(√)

各种搬运就可以养活b站一大堆up主的游戏、沙雕视频(√)

}

我要回帖

更多关于 知乎平台的特点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信