码迷,mamicode.com
首页 > 其他好文 > 详细

《七周七语言:理解多种编程范型》のIo课后习题答案

时间:2014-09-08 00:57:06      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   使用   java   ar   

哎,因为上周忙着写OAuth2.0服务端框架草稿 ,耽误了一周学习Io Language了。

本篇习题解答是接着 《七周七语言:理解多种编程范型》のRuby课后习题答案

Io是原型语言,类似于JavaScript,并不区别类和对象,所有的东东都是对象,对象的数据结构就是由键值表来维护的(在Io中就是所谓的槽),通过各种消息传递给对象来实现打印输出,复制对象等功能。因为语法非常简单(也木有语法糖),所以你可以尽情构建自己的库和功能。

第一天:

1. 对1+1求值,然后对1+"one"求值。Io是强类型还是弱类型语言?用代码证实你的答案。

Io是一种动态的(类型是在运行期检查的),强类型语言。

Io 20110905
Io> 1+"one"

  Exception: argument 0 to method ‘+‘ must be a Number, not a ‘Sequence‘
  ---------
  message ‘+‘ in ‘Command Line‘ on line 1

2. 0 是 true 还是 false ? 空字符串是 true 还是 false ? nil 是 true 还是false ? 用代码证实你的答案。

0,空字符串都认为是true,而nil认为是false

Io> if (0) then ("OK\n" print)
OK
==> nil
Io> if ("") then ("OK\n" print)
OK
==> nil
Io> if (nil) then ("OK\n" print)
==> false

3. 如何知道某个原型都支持哪些槽?

xxx proto

xxx slotNames

4. = (等号)、 := (冒号等号)、::= (冒号冒号等号)之间有何区别?你会在什么情况下使用它们?

Assign Operators
  ::= newSlot
  :=  setSlot
  =   updateSlot
Io> Vehicle := Object clone
==>  Vehicle_0x7fc3dbeb7110:
  type             = "Vehicle"

Io> Vehicle description := "a fast car"
==> a fast car
Io> Vehicle slotNames
==> list(description, type)
Io> Ferrari := Vehicle clone
==>  Ferrari_0x7fc3dbe4f2e0:
  type             = "Ferrari"

Io> Ferrari colour ::= "red"
==> red
Io> Ferrari slotNames
==> list(setColour, type, colour)

看,:=和::= 差不多,区别就在于用::=就多了一个setColour 的槽。

你可以 Ferrari setColour("Blue") 来定义Colour的颜色。

《七周七语言:理解多种编程范型》のIo课后习题答案

标签:des   style   blog   http   color   io   使用   java   ar   

原文地址:http://www.cnblogs.com/angular/p/3960962.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!