• ruby学习笔记(2)


    1)ruby的语句可以换行。这一点和js不同,js中换行视作一行语句结束,相当于在句尾加了“;”号,如果一条语句换行写,会报错。ruby中语句可以换行,而且为了提高可读性,bury鼓励不使用“;”号,希望一行语句只写在一行里,可以的话,不要在同一行里写多条语句。

    2)ruby中if,while等语句都不带{}号,相反,一些方法例如each则会带{},习惯了C系的语法,看着还真不习惯。总之因为不带{},所以在写if等语句时,一定要注意缩进,不然程序没法看了。

    3)ruby中空格不能随便乱加,如果要加空格让程序好看一点,一定要注意讲求平衡。例如:

    ==============================

    a+b

    a + b   的效果相同

    a +b 效果却等同于 a(+b),a()方法传入+b作为参数

    ==============================

    4) to_i 方法。字符串转换成数字类型。相当于js中的parseInt()。

    5) 布尔型转换。 在ruby中,布尔型也是为true和false,同其它语言一样,其它类型的值也能和布尔型进行隐式转换。但和大多数语言不同的是,在ruby中,false和nil以外所有的对象都为真,false和nil为假。包括0,在ruby中其实都是相当于真,这点和一般的语言不大一样。另外,ruby是个支持谓语的语言,鼓励返回布尔型数据的方法命名时加上“?”,这么做也是为了提高可读性。例如 isNumber? isGood?

    6) 条件判断。 在ruby中,条件判断有一点很奇怪的是else if的写法,既不是“else if”也不是“elseif”,是“elsif”,汗,为啥把那个e给省掉了?看着多别扭啊。。。

    ============================

    a = ARGV[0]
    b = ARGV[1]
    if a > b then
    print "a > b"
    elsif a == b then
    print "a = b"
    else
    print "a < b"
    end

    ============================

    除了if,ruby中还提供了unless方法,语法和if一样,但和if正相反的是,unless中的条件不成立时,才会执行。

    7) case语句。 ruby 中的case语句相当于其它语言中常用的switch,但ruby中的格式奇怪一点,功能也更强一点:

    =============================

    =begin

    这是一般的用法

    =end

    tags = ["A","IMG","PRE"]

    tags.each{ | tagname |

       case tagname

        when "P","A","I","B" then                          #bury这里可以写多个参数,用逗号隔开

              print tagname,"has child.\n"

         when "IMG","BR" then

              print tagname,"has no child.\n"

          else

               print tagname,"cannot be used.\n"

          end

    }

    =begin

    when 里还可以放 String,Numberic之类的类型名,判断类型

    =end

    array = ["aa",1,nil]

    item = array[0]

    case item

         when String

            puts "item is a String."

          when Numberic

             puts "item is a Numeric."

          else

             puts "item is a something."

    end

    =begin

    when 里还可以放正则表达式

    =end

    case line

    when /^From:/i

         print "找到寄件人了。\n"

    when /^To:/i

          print "找到收件人了。\n"

    else

         print "啥也没找到。"

    end

    =============================

    需要注意的是,ruby中的when后面的条件不会自动转换类型,比如说1和"1"是不一样的。另外,很重要的一点是,when后面的语句不需要加break,这和C系的switch是不一样的。

    8) ===。ruby中也有===号,但它和js中的===并不相同,ruby中的===左边可以是数字、字符串,也可以是正则,还可以是类型。

    =============================

    p (2 === 2)                   #=> true

    p /zz/ === "zyzzy"           #=> 2

    p String === "xyzzy"      #=>true

    =============================

  • 相关阅读:
    织梦系统的安装与详细信息
    js 报错 :object is not a function
    css3中动画animation的应用
    js 中 setTimeout()的用法
    CSS3 Gradient-CSS3渐变
    css3 transform 变形
    CSS3 transition 属性
    只要有人的地方,世界就不是冰冷的。
    CSS层
    css区块定位之浮动与清除属性
  • 原文地址:https://www.cnblogs.com/cly84920/p/4426922.html
Copyright © 2020-2023  润新知