在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
对应Ruby编程语言第三章 =begin
Ruby包含了5个表示数字的内建类:Numeric Float Integer Fixnum Bignum 及标准库中的3个数值类:Complex BigDecimal Rational Numeric | _______________________________________ | | | | | Integer Float Complex BigDecimal Rational | ___________ | | Fixnum Bignum Ruby中的所有数字对象都是Numeric类的示例,所有的整数都是Integer的实例, Bignum和Fixnum是透明转换的(如果一个Fixnum对象,其结果值超出Fixnum范围,则透明转换为Bignum,反之亦然) =end #整数字面量 #可以在整数字面量里插入下划线,此特性被称为千分符 print 1_000_000,"\n" #表示100万 #0开头的是8进制,0x或者0X开头的是16进制,0b或者0B开头的是二进制数 print 017,"\n" #八进制,输出十进制15(1*8+7=15) print 0377,"\n" #八进制,输出十进制255(3*8*8+7*8+7=255) print 0b1111_1111,"\n" #二进制 输出255(128+64+32+16+8+4+2+1=255) print 0xFF,"\n" #十六进制 输出255(15*16+15=255) #浮点数字面量 print 6.02e2,"\n" #602.0 #求余操作 print 5%2,"\n" #1 print 1.5%0.4,"\n" #0.3 print 5/-2,"\n" #1 print -5/2,"\n" #1 #divmod method return a array for storing quotient(商) and remainder(余数)
#remainder method remainder which is the same as dividend Positive or negative #n.times block :repeat n time to execute block
#Hashes(哈希) hash=Hash.newhash["one"]=1 hash["two"]=2 puts hash #{"one"=>1, "two"=>2} hash2={} hash2["one"]=2 hash2["two"]=4 puts hash2 #{"one"=>2, "two"=>4} #Hash Literals(哈希字面量) #哈希字面量就是:包含在花括号中由逗号分隔的一列键值对 numbers={"one"=>1,"two"=>2,"three"=>3,4=>8} puts numbers #{"one"=>1, "two"=>2, "three"=>3, 4=>8} #作为哈希的键,Symbol对象比字符串更高效,Symbol是不可变的,功能受限的字符串,以冒号为前缀的标识符:如 :string,:one numbers={:one=>1,:two=>2,:three=>3,:f4=>8} puts numbers #{:one=>1, :two=>2, :three=>3, :f4=>8} #Ruby1.9中,是由Symbol作为键时,可以用如下的简洁方式来构建哈希字面量 numbers={one:1,two:2} puts numbers #{:one=>1, :two=>2} #Ranges(范围) #Ranges表示位于一个开始值和一个结束值之间的值,起始值和终止值中间放置2个点(包含终止值)和3个点(不包含终止值) r=1..10 r.each{|item| print item ,' '} #1 2 3 4 5 6 7 8 9 10 r=1...10 r.each{|item| print item ,' '} #1 2 3 4 5 6 7 8 9 #可以用include? 来表示一个值是否被包含在ranges内 puts r.include? 8 #true #Symbol(符号) #一个Symbol对象引用一个符号,Symbol是不可变的,功能受限的字符串,以冒号为前缀的标识符 sym=:"Symbol demo" puts sym #Symbol demo s="Symbol demo" sym=:"#{s}" puts sym #Symbol demo #Ruby解释器会维护一个符号表(symbol table),它存储了其所知晓的所以类、方法及变量的名称。 #在反射代码(reflective code)里,符号常常被用于引用方法名,比如想知道某个对象是否包含each方法 o=Object.new puts o.respond_to? :each #false #你可以使用intern或者to_sym方法讲一个String转换为一个Symbol #可以使用to_s方法或者id2name讲一个Symbol转换回String str="This is string" sym=str.intern sym=str.to_sym puts sym #This is string str2=sym.to_s str2=sym.id2name puts str2 #This is string #2个字符串包含相同的内容,但是他们可以是2个不同的对象, #对于内容相同的字符串,转换成Symbol时 总是指向同一个Symbol对象 #True False Nil #true false 是2个布尔值,代表了真和假,nil是特殊的保留值,用于表示没有值 #如果想检测一个值是否为nil,可以用如下的方式: #1.和nil进行比较 o==nil #2.用nil?方法 o.nil? #true false nil引用的都是对象不是数值,它们分别对应的是TrueClass,FalseClass,NilClass类的实例 #Ruby需要一个布尔值时,nil表现为false,nil和false之外的所有制都表现为true |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论