ruby练习题

Python017

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")

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。

Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。

常数则以大写字母开头这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。

已经定义的类可以在运行时修改

Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

使用Ruby可以写出简短而又功能强大的代码

下面的方法用来完成两个矩阵的乘积

注:ruby标准库中已包含矩阵库 Matrix

system(“.ruby”)或者load 'another.rb'

具体代码如下:

# 返回ls的输出

s=`ls`

cmd= "ls"

s= `#{cmd}`

# 返回true or false

s= system('ls')

cmd= 'ls'

s= system(cmd)

#返回输出

s= %x[uptime]

#用top进程替换当前ruby进程

exec "top"

cmd = 'top'

exec cmd