书写缘由


  快两年的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 \n the \n words \n are \n printed \n in \n a \n new\line.".each_line do |line|
puts line
end

  

待续...

Ruby小白入门笔记之<个人记录档>的更多相关文章

  1. Ruby小白入门笔记之 <Gemfile 文件>

    因为初学Ruby,四处查资料无果,才来的贴出亲自试过的操作,覆盖整个个人入门笔记博客中,故所有的操作,都以最明了的方式阐述,当你创建完一个新的Rails应用后,你发现JAVA中我们可以编写maven聚 ...

  2. Ruby小白入门笔记之<Rails项目目录结构>

    一 .流程分析 二.目录分析 DemoRails app (核心) assets  (web前端所需文件) images       (图片) javascripts  (JS代码) styleshe ...

  3. Ruby小白入门笔记之<Rubymine工具的快捷键>

    智能快捷 Ctrl+Alt+G:弹出Generate Ctrl+Alt+L:格式化代码 Alt+F1:切换视图(Project, Structure, etc.). Alt+F2:弹出预览窗口,可选择 ...

  4. Python爬虫 小白[3天]入门笔记

    笔记来源 Day-0 1.如果你还不了解Python的基础语法,可以移步|>>>Python 基础 小白 [7天] 入门笔记<<<|或自行学习. 简介 1.什么是爬 ...

  5. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  6. Ruby入门笔记

    Ruby入门笔记 一切皆为对象 “Hello”.length 方法 定义:def开头 end结尾 命名一般采用下划线分隔单词

  7. Python基础 小白[7天]入门笔记

    笔记来源 Day-1 基础知识(注释.输入.输出.循环.数据类型.随机数) #-*- codeing = utf-8 -*- #@Time : 2020/7/11 11:38 #@Author : H ...

  8. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  9. Web前端小白入门指迷

    前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...

随机推荐

  1. linux创建定时任务发送钉钉通知

    一.现在钉钉里面添加机器人 添加成功后,复制出Webhook链接. 注意,自定义关键字时你的发送信息中一定要完整包含关键字 二.找到自己的服务器 1. sudo su 切换到root用户 2.cron ...

  2. Redis主从配置以及哨兵模式

    Redis主从模式,应用写master,读slave,减轻master的压力. 配置主结点: daemonize yes port 6379bind 0.0.0.0 pidfile /opt/redi ...

  3. Ubuntu环境变量设置注意点

    设置环境变量时,有一点要注意: /etc/bash.bashrc与/etc/profile是有区别的 什么区别呢? 打开一个新的shell时,会读取/etc/bash.bashrc和~/.bashrc ...

  4. 微信小程序(7)--微信小程序连续旋转动画

    微信小程序连续旋转动画 https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-animation.html <view animation=&quo ...

  5. 关于Linux系统下基于Tomcat部署和升级war包的详细过程

    1.首先Linux先安装java,Tomcat 中间件规范要求: 1)         软件必须下载到/services/download_soft_v        --------(用xftp上传 ...

  6. Sql Server 常用日期格式

    SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.17 ...

  7. Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片

    Python 实用爬虫-04-使用 BeautifulSoup 去水印下载 CSDN 博客图片 其实没太大用,就是方便一些,因为现在各个平台之间的图片都不能共享,比如说在 CSDN 不能用简书的图片, ...

  8. Office365 PowerShell打开邮箱审计功能

    最近总公司要求Office365需要在所有的邮箱上面打开审计功能.这个功能没法通过图形界面操作,只能通过powershell脚本实现. 微软提供了一个官方的脚本,不过里面有个小bug https:// ...

  9. Vue多页面 按钮级别权限控制 directive指令控制

    利用driective 构建自己的指令,实现按钮级别权限 项目结构如下: 修改router.js { path: 'schools', name: '列表', component: () => ...

  10. django与ajax:ajax结合sweetalter ,批量插入数据 ;分页器组件

    目录 一.ajax结合sweetalter 二.bulk_create批量插入数据 三.简易版分页器推导 1. 推导步骤 四.自定义分页器的使用 1. 自定义分页器模板 2. 使用方法 (1)后端代码 ...