首页 > 学院 > 开发设计 > 正文

ruby 标准类型总结

2019-10-26 19:22:28
字体:
来源:转载
供稿:网友
一、数字
    Ruby支持整数和浮点数,整数可以是任意长度 一定范围内的整数以二进制存放,它们属于fixnum类型,当超出这个范围时则自动转换为bignum类型 表达方式:符号+一串字符,数字串中的下划线会被忽略,(前缀包括:0表示八进制, 0x表示十六进制, 0b表示二进制)123_456_789_123_345_789 # Bignum
    0xaabb # 十六进制 也可以通过在前面加上问号来得到ASCII码字符对应的整数值和转义序列的值
    ?a # 普通字符
    ?/n # 换行符 (0x0a)
    ?/C-a # CTRL+a (0x01)
    ?/M-a # ALT+a
    ?/M-/C-a # CTRL+ALT+a
    ?/C-? # 删除键 一个带小数点的数字字面值被转换成Float对象 所有的数字都是对象,不存在相应的函数而是方法
    exp:
    数字的绝对值是aNumber.abs而不是abs(aNumber) 整数有用的迭代器
    3.times { print "X " } => X X X 1.upto(5) { |i| print i, " " } =>1 2 3 4 5 99.downto(95) { |i| print i, " " }=>99 98 97 96 95 50.step(80, 5) { |i| print i, " " }=>50 55 60 65 70 75 80
二、字符串
    Ruby的字符串是8位字节的简单序列,字符串是String类的对象 注意转换机制(注意单引号与双引号的区别),如:
    单引号中两个相连的反斜线被替换成一个反斜线,,一个反斜线后跟一个单引号被替换成一个单引号
    'escape using "//"' >> 转义为"/" 'That/'s right' >> That's right
    双引号支持多义的转义
    "/n"
    #{expr}序列来替代任何的Ruby表达式的值 ,(全局变量、类变量或者实例变量,那么可以省略大括号)
    "Seconds/day: #{24*60*60}" >> Seconds/day: 86400 "#{'Ho! '*3}Merry Christmas" >> Ho! Ho! Ho! Merry Christmas "This is line #$." >> This is line 3 here document来创建一个字符串,end_of_string 为结束符号
    aString = <<END_OF_STRING The body of the string is the input lines up to one ending with the same text that followed the '<<' END_OF_STRING %q和%Q分别把字符串分隔成单引号和双引号字符串(即%q与%Q后面的符号具有',"的功能)
    %q/general single-quoted string/ >> general single-quoted string String 常用功能
    String#split:把行分解成字段
    String#chomp:去掉换行符
    String#squeeze:剪除被重复输入的字符
    String#scan:以指定想让块匹配的模式
    exp:
    /jazz/j00132.mp3 | 3:45 | Fats Waller | Ain't Misbehavin'
    /jazz/j00319.mp3 | 2:58 | Louis Armstrong | Wonderful World
    #文件格式如上,要进行分解
    songs = SongList.new
    songFile.each do |line|
    file, length, name, title = line.chomp.split(//s*/|/s*/)#先chomp,后再分解,//s*表示任字符
    name.squeeze!(" ")#替换空格
    mins, secs = length.scan(//d+/)#这里用scan匹配模式
    songs.append Song.new(title, name, mins.to_i*60+secs.to_i)
    end
三、区间
    区间存在于任何地方,如:1到12月。ruby用区间实现了3个不同的特性:序列,条件,间隔。 "..":两个点号创建一个闭区间,"...":而三个点号创建一个右开区间(即右边界不取值)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表