ruby练习题

Python018

ruby练习题,第1张

#对于题目的该类具有方法部分,感觉有些歧义,看下如下代码是否合题目要求

class Switch

#可读写属性

attr_accessor :type #交换机类型

attr_accessor :ipAddress #IP地址

attr_accessor :portld #端口号

attr_accessor :boardld #单板

attr_accessor :port #接口

attr_accessor :softwareVersion #软件版本

#初始化属性

def initialize(type="TestSwitch",ipAddress="127.0.0.1",portld=80,boardld="TestBoard",port=1,softwareVersion="V 1.0")

@type=type

@ipAddress=ipAddress

@portld=portld

@boardld=boardld

@port =port 

@softwareVersion=softwareVersion

end

#方法:连接设备

def login(ip)

  @ipAddress=ip

if @ipAddress == "192.168.1.1"

  return true

else

  return false

end

end

#方法:断开连接设备

def unlink(ip)

  if ip == @ipAddress

   puts "断开连接成功"

  else

    return false

  end

end

#方法:下发命令

def send(order)

  raise "Something Wrong" if order == "vlan 55555"  

  rescue => err

  print "指令错误,出错指令为:"

  ensure

  puts order

end

end

#创建交换机类型为S9300的交换机,IP地址为192.168.1.1,端口号为23

mySwitch = Switch.new("S9300","192.168.1.1",23)

#使用“连接设备”方法连接设备

mySwitch.login("192.168.1.2")

#下发指令

mySwitch.send("display device")

mySwitch.send("vlan 55555")

#使用“断开设备连接”方法断开设备连接 

mySwitch.unlink("192.168.1.2")

1. ruby的case可以匹配很多东西:范围/数组,对象,正则表达,python没有case/switch而使用if/else比较死板点

2. python的缩进很漂亮,虽然有时会造成些许麻烦。ruby的end蛮难看的,所以大家都被逼当one liner(玩笑)

3. 感觉上ruby比python更OO,当然这也可能是因为python不提倡用那些改变对象内部构造的‘伎俩’造成的错觉

4. python有list comprehension, ruby没有:(

5. python有真正的keyword argument, ruby用hash模拟,当然实际用起来没什么差别

6. python的self很讨厌,ruby没有那种繁琐的东西

7. reflection,ruby内置了很多方法,比如object.methods,而python把这些信息存在特殊的字典里。差不多

8. ruby的block功能很强,python的lambda只能返回单一值

9. ruby的open class已经声明远播,可以玩出2.days.ago这样的花样,python好像没法直接修改内置类也反对这么做。

10. python需要用@classmethod修饰声明类方法,ruby是内建

11. ruby有单子方法,也就对对象单独定制,python不知道有没有类似概念

c语言的双冒号是什么意思::

c++中的名字空间限定

c语言里没有

双冒号是什么意思

双冒号::,是C++语言里面的符号。并不是C语言的。

表示某个“类”里面的函数。

两个冒号是什么意思

两个冒号表示作用域操作符。::操作符在其左操作数的作用域内找到其右操作数的名字。用于访问某个命名空间中的名字,如std::cout,表明名字cout来自命名空间std。同样的可以用来从某个类取名字,如string::size_type,表明size_type是string类定义的

C++ 双冒号开头的语法是什么意思?

命名空间限定。

std::string

表示std命名空间下的 string类。

直接::开始,表示顶层命名空间(全局变量)std::string ->::std::string 这样也可以。

::和 文件路径的 / 可以对照理解。

linux下面没有盘符之分。 只有一个盘,所以也就没有C,D,E,F这种了。

/usr/share/abc.txt abc.txt 位于 /usr/share目录下

/abc.txt abc.txt直接位于硬盘下。第一个/就代表硬盘根目录。

c 语言里的 ::双冒号是什么意思啊

双冒号::,是C++语言里面的符号。并不是C语言的。

它表示某个“类”里面的函数。

在C++里面,双冒号是什么意思

域运算符

多用在类后面

Circle::area(){}表示Circle类范围内的area函数。

在ruby里双冒号是什么意思

双冒号 在ruby里面,是作为 命名空间的符号(namspace)

命名空间可以让类和模块的结构更清晰。

在c++编写代码是有单冒号:还有双冒号::他们两个是什么意思,作用是什么?

:用于标签,比如Label: switch case 中的常量: 或2元 表达式, a?b:c

表示一个标签符号的结束

::用于名称空间,比如 全局函数使用::GetWindow()

表示的是名称引用上的问题。

java 双冒号是什么操作符

这里的for是Java中forEach, 用来遍历数组的。 for(int i : d) 就是遍历int型数组d的 每一次访问数组d的时候读取的数据放入int型的i中。 和for(int i=0i

存储过程中双冒号是干什么用的

双冒号:: (double colon)主要是PostgreSQL的语法。Oracle数据库没有。

在PostgreSQL数据库中,双冒号:: 是用于类型转换的,比如'2010-01-01'::date。

在SQL SERVER 2000中,::用在调用内置函数时,比如:

直接执行

SELECT * FROM fn_helpcollations()

将会出错。

而是需要在函数前加前缀::

SELECT * FROM ::fn_helpcollations()

如果是在SQL SERVER 2005上则不需要加::。