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上则不需要加::。