随笔分类 -  ruby

摘要:回文:downcasesplit()join()小技巧:a[0..-1]print "aaa","\n" 注意是双引号"\n"shuffle[0..3] 数组前4位随机顺序,没有[]时是整体打乱顺序print "foobar".split # ["foobar"]print "foobar".spl 阅读全文
posted @ 2016-09-19 13:56 Hsinwang 阅读(136) 评论(0) 推荐(0)
摘要:一、启动一个新线程 二、线程同步 1. 通过Mutex类实现线程同步 2. 监管数据交接的Queue类实现线程同步 3. 使用ConditionVariable实现同步控制 三、进程互斥 四、死锁 阅读全文
posted @ 2016-09-06 13:06 Hsinwang 阅读(128) 评论(0) 推荐(0)
摘要:=begin #gets语句在sublime不可运行,在Dos窗口可运行 puts "Enter a value :" val = gets puts val putc "hello" # h #打开、关闭文件 file = File.new("filename","r") #...处理文件 file.close #File.open方法与new类似,但不同点在于File.... 阅读全文
posted @ 2016-08-15 14:28 Hsinwang 阅读(176) 评论(0) 推荐(0)
摘要:#break #next#redo redo_counter = 0 5.times do |i| redo_counter += 1 puts "i:#{i} , redo_counter:#{redo_counter}" redo if redo_counter == 4 end # i:0 , redo_counter:1 # i:1 , redo_counter:2 # i:2 ... 阅读全文
posted @ 2016-08-15 11:39 Hsinwang 阅读(184) 评论(0) 推荐(0)
摘要:Symbol:表示“名字”,比如字符串的名字,标识符的名字。 创建一个 Symbol 对象的方法:在名字或者字符串前面加上冒号 在 Ruby 中每一个对象都有唯一的对象标识符(Object Identifier),可以通过 object_id方法来得到一个对象的标识符。 来看看 Symbol 对象和 阅读全文
posted @ 2016-08-01 10:52 Hsinwang 阅读(389) 评论(0) 推荐(0)
摘要:%Q 用于替代双引号的字符串. 当你需要在字符串里放入很多引号时候, 可以直接用下面方法而不需要在引号前逐个添加反斜杠 (\") (...)也可用其他非数字字母的符号或成对的符号代替, 诸如[...], !...!, +...+,{...}, <...>等.以下写法全部与上面等效: 除此之外还可省略 阅读全文
posted @ 2016-08-01 10:08 Hsinwang 阅读(879) 评论(0) 推荐(0)
摘要:#使用*可接受多个参数 def test(a,*b) puts "#{a} and #{b.join(',')}" end test(1,2,3,4) # 1 and 2,3,4 #每个被调用的方法都会返回一个值,是方法最后一条语句执行的结果 def test1 "one" "two" end puts test1 # tw... 阅读全文
posted @ 2016-08-01 09:24 Hsinwang 阅读(142) 评论(0) 推荐(0)
摘要:文件、变量、方法:使用snake_case 类、模块:使用CamelCase 常量:大写、snake_case 方法: 表示判断方法名后加问号? 可能会造成潜在危险的方法加! 阅读全文
posted @ 2016-07-20 09:55 Hsinwang 阅读(265) 评论(0) 推荐(0)
摘要:#正则表达式 #语法,3种形式 line = "hello ruby" if line =~ /ruby/ puts "line contains 'ruby'" end if line =~ /RUBY/i #在第二个斜杠后面可以添修饰符 puts "line contains 'ruby',忽略大小写" end if line =~ %r!ru... 阅读全文
posted @ 2016-07-19 15:52 Hsinwang 阅读(109) 评论(0) 推荐(0)
摘要:=begin Public 方法: Public 方法可被任意对象调用。默认情况下,方法都是 public 的,initialize 方法总是 private 的。 Protected 方法: Protected 方法只能被类及其子类的对象调用。访问也只能在类及其子类内部进行。 Private 方法: Private 方法不能被明确的接受者调用,其接受者只能是self,所以只能在当前对象的上下文... 阅读全文
posted @ 2016-07-19 11:43 Hsinwang 阅读(222) 评论(0) 推荐(0)
摘要:a = true b = false c = a and b puts c #true 比较特殊,加括号后为false #优先级:(puts true) and false #and or 的优先级最低,比 = 低 a = true b = false c = a or b puts c ... 阅读全文
posted @ 2016-07-19 10:36 Hsinwang 阅读(690) 评论(0) 推荐(0)
摘要:#访问器(accessor)类似getter #设置器(setter) class Box def initialize (w,h) @width = w @height = h end #accessor def get_width #attr_reader:width #attr_accessor:w... 阅读全文
posted @ 2016-07-18 16:35 Hsinwang 阅读(121) 评论(0) 推荐(0)
摘要:# each 迭代器 # each 迭代器总是与一个块关联。它向块返回数组的每个值,一个接着一个。值被存储在变量 i 中,然后显示在屏幕上。 arr = [1,2,3,4,5] arr.each { |e| puts e } arr.each do |i| puts i end puts "........................" # collect 迭代器 # co... 阅读全文
posted @ 2016-07-18 14:53 Hsinwang 阅读(102) 评论(0) 推荐(0)
摘要:module.rb support.rb 阅读全文
posted @ 2016-07-18 14:06 Hsinwang 阅读(134) 评论(0) 推荐(0)
摘要:#块中的代码总是包含在大括号 {} 内。 #块总是从与其具有相同名称的函数调用。这意味着如果您的块名称为 test,那么您要使用函数 test 来调用这个块。 #您可以使用 yield 语句来调用块。 #block和方法之间是协同例程,它们之间来回地转换控制权 #不带参数 def test puts "test1" yield #使用多个yield,可以多... 阅读全文
posted @ 2016-07-18 14:05 Hsinwang 阅读(181) 评论(0) 推荐(0)
摘要:#单引号字符串 #在单引号字符串中使用单引号,需要在单引号前面加反斜杠(\) puts 'I won\'t lose' #双引号字符串 puts "I won't lose" a = 2 puts "#{a}" #在""里使用(#{}) 可以计算表达式的值 #创建数组 names = Array.new names = Array.new(20) puts names.size ... 阅读全文
posted @ 2016-07-15 17:42 Hsinwang 阅读(335) 评论(0) 推荐(0)