• Ruby小白入门笔记之<个人记录档>


                    书写缘由


          快两年的JAVA开发,因为来到一家新公司,产品需要用Ruby开发,故此才有了这从头开始,一入编程深似海啊......

          因为入门时是JAVA,所以理念跟规范早已形成,故此感觉突然采用Ruby编程,在开发上有种说不出的不习惯,看着那些似JAVA又比JAVA语法更简单的代码,就来的既陌生又熟悉。废话不多说,可能还是因为Ruby地位问题,百度的资料少之又少,所以才打算写篇博文,记录自己的从头开始。也希望大家一起讨论,同时欢迎大牛指出不足,提出异议。

                    开发环境


      参考我的另一篇博文,根据步骤配置

      Ubuntu16.04小白入门分享之 玩转Ruby你需要安装什么软件(持续更新)

                    基础知识


     以下都是个人理解,具体还需看官自己理解。

    1.基本概念:

         Ruby是一门面向对象的编程语言,这点跟JAVA一样,但是它属于脚本语言,可以直接控制台交互,所以不用像JAVA一样需要编译成字节码才能运行。Ruby的文件扩展名是 .rb,你可以使用任何一种文本编辑器,window自带的记事本也好,EditPlus也罢,只要把后缀改为.rb就可以了,接着在window中使用cmd命令提示符,Ubuntu系统使用终端输入 ruby filename(文件名).rb  就可以让它产生结果。

      如果你有JAVA编程基础,就知道一些功能的实现需要导入一些jar包支持,那么Ruby中的每个项目下的Gemfile文件就是项目的依赖文件,而使用bundle install命令就可以添加好Gem中的管理。

      注意,虽然Ruby支持在window开发,但是个人还是建议用Ubuntu,可避免一些不必要的错误。

    2.开发工具:

      Rubymine  :是一个为Ruby 和Rails开发者准备的IDE,其带有所有开发者必须的功能,并将之紧密集成于便捷的开发环境中。 JetBrains公司产品,跟JAVA中IDEA是同系列产品。

    3.注解:

         单行注释  #                                 Rubymine快捷键  ctrl+/

         多行注释  =begin  ...  =end           Rubymine快捷键  ctrl+shift+/

    4.特征:

    • 标准的面向对象特性,比如类与方法

    • 一切皆为对象

    • 弱类型变量

    • 简捷方便的使用库

    • 简单易学的语法

    • 垃圾回收器

    • 丰富的反射功能

    • 用户级线程

    推荐学习网站(都是自己翻度娘翻到的,个人感觉是干货):

      菜鸟教程 : http://www.runoob.com/ruby/ruby-tutorial.html

      简书        : https://www.jianshu.com/p/129aab03871b

      慕课网     :http://www.imooc.com/article/13115

                    扭转概念


         在Ruby中的赋值没有JAVA来的规范不用定义变量类型,就类似于JAVA10的新特征,用var可代表所有类型,而Ruby直接写个变量名即可

      a="java"
      b=123
      c=1.4
      d=[1, 2 , "Hello World"]
      e= 1...10

        数据类型:

       Ruby支持的数据类型包括基本的Number、String、Ranges、Symbols,以及true、false和nil这几个特殊值,同时还有两种重要的数据结构——Array和Hash。

        四种类型的变量:

       局部变量以小写字母或 _ 开始。以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量

         对象的创建:

    #new方法等于JAVA中的Test t=new Test();是属于类方法,在 Ruby库中预定义
    demo1 = Demo.new
    demo2 = Demo.new
    
    #格式
    # 对象名称 = 类名.new
    

      

      初始方法:

    #等同于JAVA中的无参构造函数,是在调用new方法时执行,在创建类时使用initialize声明方法
    #举例:
    class Demo
       @@of_demo=0
       def initialize(id, name, addr)
          @de_id=id
          @de_name=name
          @de_addr=addr
       end
    end
    
    
    #创建对象
    demo1 = Demo.new("1","JAVA","Think in Java")
    demo2 = Demo.new("2",".NET","Web Primer")
    
    #综上可看出,在 initialize 方法中,把这些局部变量的值传给实例变量 @cust_id、@cust_name 和 @cust_addr。在这里,局部变量的值是随着 new 方法进行传递
    

      方法的定义

    #在JAVA中方法定义是
    #public void test(){}
    
    #Ruby方法是,方法名以小写字母开头,以关键字def开始,end结束
    
    class Sample
       def function
          statement 1
          statement 2
       end
    end
    

      循环

    #在ruby中虽然有while、do..while、for、until循环语句,但是在ruby中一般使用迭代来做循环操作
    
    #举例
    #Ruby each迭代器
    (1...5).each do |i|   
       puts i   
    end
    
    #Ruby times迭代器,x为执行指定次数,假如输入为5,则打印出 0,1,2,3,4
    x.times do |variable|  
      code...  
    end
    
    
    #Ruby upto迭代器,x,y代表从多少到多少的迭代
    
    x.upto(y) do |variable|  
      code  
    end
    
    #Ruby step迭代器,controller代表范围,x代表需要跳过的范围,假如controller为10..100,x为5,则打印为10,15,20,25,30,35,40,45......
    
    (controller).step(x) do |variable|  
      code  
    end
    
    #Ruby each_line 迭代器,是为了迭代字符串中的行,line代表前面的字符串,打印结果为
    All
    the
    words
    ...  
    
    "All 
     the 
     words 
     are 
     printed 
     in 
     a 
     newline.".each_line do |line|   
        puts line   
    end
    

      

    待续...

  • 相关阅读:
    SQL去除重复记录
    FullCalendar应用——整合农历节气和节日
    Dropzone.js实现文件拖拽上传
    HTML5实现文件断点续传
    FullCalendar日历插件说明文档
    网络电影免会员播放器
    百度网盘搜索工具
    HTML5学习
    HTML2 -- 布局格式
    JS10 -- url问号后的数据
  • 原文地址:https://www.cnblogs.com/lwh-note/p/9173653.html
Copyright © 2020-2023  润新知