在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
表达式和变量: 1 x = 10 2 puts "x is ten" if x == 10 # x is ten 除了if关键字还可以使用unless,这个表示和if相反的: 1 x = 24 2 puts "You are not a teenager" unless age > 12 && age < 20 # You are not a teenager 表示某个数在两个数之间可以使用between,此时between的两个边界都包括: 1 x = 10 2 puts "x is in the area" if x.between?(6, 10) # x is in the area 需要注意的特殊比较符号: x<=>y,该表达式如果 x==y,则返回0;如果 x > y,则返回1; 如果x<y,则返回-1 . 1 # 使用do end来包裹逻辑代码块 2 5.times do puts "test" end # testtesttesttesttest 3 4 # 使用{ }来包裹逻辑代码快 5 5.times {puts "test"} # testtesttesttesttest 一般来说如果循环的逻辑代码是单行且较短的时候可以使用大括号的形式,而当多行的时候建议使用do end形式。 1 1.upto(10) {|number| puts number} 2 # 或者 3 do |number| puts number end 4 5 #下面同样可以两种方式 6 10.downto(5) {|number| puts number} 7 0.step(50, 5) {|number| puts number}
常量:
1 puts "abc" * 5 # abcabcabcabcabc 2 puts 'x' > 'y' # false 3 puts 'x' < 'y' # true 4 # 如果想得到一个字符ASCII码的值,使用 ? : 5 puts ?A --> 65 # (在ruby2.3.0中好像还是会输出字符) 6 如果想要知道某个ASCII码对应的字符,可以使用数字 .chr方法来将其转换为字符: 7 puts 65.chr --> A 1 puts "This is a #{'bad ' *3} word" # This is a bad bad bad word 2 # 需要注意的是这一句整个必须用双引号括起来,而里面的bad则可以用单引号,双引号都可 3 4 # 另外可以再插值中使用变量: 5 x = 10 6 y = 20 7 # 如果想要输出 10 + 20 = 30 8 # 直接输出的话,必须调用数字的 .to_s 方法,否则会报错: 9 puts x.to_s + " + " + y.to_s + " = " + (x + y).to_s 10 # 而使用插值的话,输入为: 11 puts "#{x} + #{y} = #{x + y}"
正则表达式与字符串操作: 1 "foobarbar".sub("bar", "foo") # foofoobar 该方法只替换第一次遇到的,要替换所有使用 gsub. 1 x = "foobarbar" 2 puts x.sub(/^../, "hello") # helloobarbar
用正则表达式进行迭代: 1 x.scan(/./) do |letter| puts letter end
其中scan的传入参数也是一个正则表达式,该函数会遍历字符串,找到匹配的字符并进行相应的处理 。 1 # 例如找到下面字符串中的数字: 2 "the car cost $1000 and that car cost $100".scan(/\d/) do |letter| puts letter end 3 # 会发现这时候是一个一个数字输出,这时就要用到 + 号表示一个或者多个了。 4 "the car cost $1000 and that car cost $100".scan(/\d+/) do |letter| puts letter end
1 # the string has no digits 2 puts "the string has no digits" unless "hello, this is a test" =~ /[0-9]/ 当然可以使用更强大的字符串match函数,该函数不需要用 // 指定正则表达式,会默认的把中间的字符串作为正则表达式,且有一个返回值,类似于java上的group。可以通过列表似的方式来访问: 1 puts "the string has no digits" unless "hello, this is a test".match('[0-9]') 2 x = "this is a test".match(/(\w+) (\w+)/) 3 x[0] # this is 4 x[1] # this 5 x[2] # is 6 x[3] # nil
数组: 1 irb(main):013:0> a = [1, 2,3] 2 => [1, 2, 3] 3 irb(main):014:0> a.join 4 => "123" 5 irb(main):015:0> a.join('|') 6 => "1|2|3"
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论