美文网首页
Ruby 基础

Ruby 基础

作者: 芝麻香油 | 来源:发表于2016-12-16 16:41 被阅读0次

    按照以往的学习方式,每学一种编程语言都要先配置它的环境。因此,在正式写 Ruby 程序之前应该先配置环境。看这里看这里看这里

    Hello,World!

    安装好环境,我们来写一个 Hello World!
    vim HelloWorld.rb # 创建 ruby 文件

    print "Hello,World!\n"
    

    执行程序
    ruby HelloWorld.rb
    此时,终端显示

    Hello,World!
    

    有木有很简单,接下来我们正式开始 Ruby 之旅。

    方法的调用

    Ruby 在调用方法时可以省略 ()

    irb(main):001:0>  print "Hello,","Ruby",".","\n"
    Hello,Ruby.
    => nil
    irb(main):002:0> 
    

    print 方法直接输出结果,需要换行时,需要在末尾加 "\n"。

    puts方法在输出结果的末尾一定会输出换行符。

    p方法在输出结果时,数值结果和字符串结果会以不同的形式输出。但是print和puts方法,输出数值1和字符串"1"时,结果都是单纯的1。

    eg:

    irb(main):002:0> p "100"
    "100"
    => "100"
    irb(main):003:0> p 100
    100
    

    数值表示与计算

    Ruby进行数学函数计算,如平方根、sin等。使用数学函数时,必须在函数前加上Math.标识。如不想在函数前加上Math.时,则需要 include Math 这段代码。

    irb(main):007:0> Math.sqrt(10000)
    => 100.0
    

    变量

    "size = #{area}\n" 为整体的一个字符串。#{area} 方法表示把area的值嵌入到字符串中

    x=10
    y=20
    z=30
    area =(x*x+y*y+z*z)*2
    print area,"\n"
    print "size = #{area}\n
    

    注释

    单行注释:#

    # 我是注释
    

    多行注释:以 =begin 开头,以 =end 结尾

    =begin
    我
    是
    注
    释
    =end
    

    控制语句

    1. 条件判断:if~then~end
    if 条件 then
          条件成立时的处理
    else 
          条件不成立时的处理
    end
    

    eg:

    a = 2
    if a >= 1 
        print "bigger\n"
    else 
        print "smaller\n"
    end
    
    1. while 语句
    while 循环条件 do 
        希望循环的处理
    end
    
    1. times 方法
    循环次数.times do 
        希望循环的处理
    end
    

    eg:

    5.times do
        print “hello,world!\n”
    end
    

    便利的对象

    1. 数组
      Ruby中数组的大小是按照实际情况自动调整的,即动态数组。
      Ruby数组支持多种不同对象的混合保存。
    mixed = [1,"AAA",2,"BB",3]
    

    数组的大小

    mixed.size => 5
    

    数组的循环Ruby中提供了each方法便利整个数组,each后面在do~end之间的部分称为块(block),块的开始部分称为|变量|。each方法会吧数组元素逐个拿出来,赋值给指定的|变量|,那么块里面的方法就可以通过访问该变量,实现循环遍历数组的操作。

    数组.each do |变量| 希望循环的处理end
    

    eg:

    names = ["zhao","qian","sun","li"]
    names.each do |n| 
        puts n
    end
    
    1. 散列
      散列(hash)是程序里常用的容器。散列是键值对(key-value pair)的一种数据结构。在Ruby中,一般以字符串或者符号(symbol)作为键,用来保存对应的对象。
    • 符号(symbol)
      1. 可以理解为轻量级的字符串,也是对象
      2. 一般用作名称标签使用,用来表示方法等的对象名称
      3. 像散列这种单纯判断"是否相等"的处理中效率较高
      4. 创建方式,只需在标示符的开头加上:就可以了

    符号与字符串间相互转换

    symbol.to_s       #将符号转换为字符串
    string.to_sym      #将字符串转换为符号
    

    散列创建的方法与数组差不多,但使用的是{}。散列定义有两种方法。
    eg:

    address = {name: "nantongdajie",id:"145",info:"heu"}
    student = {:name=>"tars",:id=>30}
    address.each do |key,value| 
        puts "#{key}:#{value}"
    end
    student.each do |key,value| 
        puts "#{key}:#{value}"
    end
    

    运行结果

    hash_demo.rb
    name:nantongdajie
    id:145
    info:heu
    name:tars
    id:30
    

    Tips

    Ruby 中一切数据都是对象

    pp 方法

    Ruby 除了提供 p 方法外,还提供类似作用的方法 pppp 是英语pretty print 的缩写。
    eg:

    v = [{ 
        key00: "value01", 
        key01: "value02", 
        key02: "value03"
    }]
    p v
    pp v
    

    与p方法不同,pp方法在输出对象结果时,为了更容易看懂,会适当地换行以调整输出结果。

    循环语句、方法及其主要用途

    方法 主要用途
    times 方法 确定循环次数
    for 语句 从对象取出元素时使用(each 语法糖)
    while 语句 希望自由指定循环条件时使用
    until 语句 使用 while 语句使用循环条件变得难懂时使用
    each 方法 从对象取出元素时使用
    loop 方法 不限制循环次数时使用

    do~end & {~}

    1. 程序是跨行时用 :do ~ end
    2. 程序在一行写时用:{~}

    先整理到这,路还很长,还需学习

    相关文章

      网友评论

          本文标题:Ruby 基础

          本文链接:https://www.haomeiwen.com/subject/igsdmttx.html