一. 简介

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。

二. 官方社区(中文)

https://ruby-china.org/

三. 安装

ruby下载安装:https://www.ruby-lang.org/zh_cn/documentation/

rvm下载安装:https://ruby-china.org/wiki/rvm-guide

四. 初试

# 万变不离其宗,先来一个hello world
puts "Hellow world"

五. 函数

def sayHello
puts "Hello world"
end
sayHello def sayHello1(name)
puts "Hello #{name}"
end
sayHello1("ruby")

ruby的函数传参与Python类似,需注意的就是占位输出"#{}"符

六.类

class Player
def initialize(name = "python")  # 构造函数
@name = name
end def show()
puts "player: #{@name}"
end
end python = Player.new()
python.show() ruby = Player.new("ruby")
ruby.show() go = Player.new("go")
go.show()
Ruby 支持五种类型的变量。
1. 一般小写字母、下划线开头:变量(Variable)。
2. $开头:全局变量(Global variable)。
3. @开头:实例变量(Instance variable)。
4. @@开头:类变量(Class variable)类变量被共享在整个继承链中
5. 大写字母开头:常数(Constant)。

1. 先熟悉三个方法

instance_methods(all:bool):列出对象(类)内部的方法
respond_to?:调查对象的方法/属性是否可用
send:执行对象的方法

(1). instance_methods:列出对象(类)内部的可用方法,用于调查解析对象的使用。

class Game
def initialize(title="怪物猎人", price = 200)
@title = title
@price = price
end def show()
puts "标题: #{@title}"
puts "价格: #{@price}"
end def show_1()
end def show_2()
end
end puts Game.instance_methods(false )

注:可以试试把instance_methods中的false改成true

(2). respond_to?:调查对象的方法/属性是否可用,send:执行对象的方法

...
mario = Game.new("超级马里奥", 350)
if mario.respond_to?("show") # 判断对象是否存在show方法
mario.send("show") # 执行指定的方法
end

2. attr_accessor:定义可存取对象的属性

class Game
attr_accessor :price, :title # 提供了可供对象外部使用的属性
def initialize(title = "怪物猎人", price = 200) # 构造函数
@title = title
@price = price
end def show()
puts "标题:#{@title}"
puts "价格: #{@price}"
end
end mygame = Game.new()
mygame.show() puts "title is" + mygame.respond_to?("title").to_s
puts "price is" + mygame.respond_to?("price").to_s mygame.title = "Super Mario World"
mygame.price = 150
mygame.show

注:感觉有点像Python中的global,用来定义全局变量

。。。

先到这,稍后继续

Ruby初见的更多相关文章

  1. 重拾Ruby—新的征程

    作家格拉德威尔在<异类>一书中指出: “人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力.1万小时的锤炼是任何人从平凡变成超凡的必要条件.“ 他将此称为“一万小时定 ...

  2. 安装cocoapods遇到两大坑-Ruby版本升级和Podfile的配置

    今天安装cocoapods #移除原有ruby源 $ gem sources --remove https://rubygems.org/ #使用可用的淘宝网 $ gem sources -a htt ...

  3. Unable to download data from http://ruby.taobao.org/ & don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

    安装cocoapods,记录两个问题! 1.镜像已经替换成了 http://ruby.taobao.org/, 还是不能不能安装cocoapods, 报错:Unable to download dat ...

  4. 安装了ruby后怎么安装sass

    在命令行中输入 ruby -v 查看版本号 先移除默认的https://rubygems.org源,命令为gem sources --remove https://rubygems.org/,按回车 ...

  5. ruby 基础知识(一)

    突然今天发现一大神的博客:http://www.cnblogs.com/jackluo/archive/2013/01/22/2871655.html    相信初学者会受益颇多 ruby  参考文档 ...

  6. ruby 基础知识(二)

    ruby  中的动态方法 http://singleant.iteye.com/blog/1680382 Rails 大量使用了符号(symbol).符号看上去很像变量名,不过以冒号作为前缀.符号的例 ...

  7. Ruby安装Scss

    Ruby安装Scss 引言 已经许久不写HTML了,今天有点以前的东西要改.但是刚装的Windows10,已经没有以前的Web开发环境了.只好重新安装. 结果Webstorm装好后配置Scss出现错误 ...

  8. fzf by ruby

    fzf by ruby */--> fzf by ruby 1 github地址 https://github.com/junegunn/fzf 2 简介 软件通过匿名管道和grep扩展了bas ...

  9. The Safe Navigation Operator (&.) in Ruby

    The most interesting addition to Ruby 2.3.0 is the Safe Navigation Operator(&.). A similar opera ...

随机推荐

  1. [笔记]nginx配置反向代理和负载均衡

    1.nginx配置文件:源码安装情况下,nginx.conf在解压后的安装包内.yum安装,一般情况下,一部分在/etc/nginx/nginx.conf中,一部分在/etc/nginx/conf.d ...

  2. func<T> 和 action<T>

    一.Func Func<Result>,Func<T1,Result>是一个.Net内置的泛型委托. Func<TResult> Func<T,TResult ...

  3. [题解] [TJOI2011] 构造矩阵

    题面 题解 很容易看出来是道网络流的题目, 要是没有这个字典序最小, 直接建图跑一遍就好了, 考虑如何输出字典序最小的方案 我们可以贪心地去选择, 若当前点可以选0就选0, 不能选0就选1, 有一点像 ...

  4. Http请求优化

    Http请求优化 我们在做项目开发或多或少的都会使用SpringCloud,其中做远程调度的时候会将HTTP请求Http请求优化. HTTP请求Client存在很多种. JDK原生的URLConnec ...

  5. Nginx数据结构之红黑树ngx_rbtree_t

    1. 什么是红黑树? 1.1 概述 红黑树实际上是一种自平衡二叉查找树. 二叉树是什么?二叉树是每个节点最多有两个子树的树结构,每个节点都可以用于存储数据,可以由任 1 个节点访问它的左右 子树或父节 ...

  6. koa 路由、视图模块化(二)

    1.项目目录 2.路由 根目录/routes/index.js -- 首页 const router = require('koa-router')(); router.get('/', async ...

  7. [eclipse]如何修改Eclipse编辑器的字体

    步骤如下, 菜单->"Window"->“Preference”->“General”->“Appearance”->“Colors & Fo ...

  8. hotspot 线程状态

  9. windows10下如何完全卸载串口驱动?

    答: 所需步骤如下: 1. 以管理员身份启动cmd 2. 在cmd中输入两行命令来启动设备管理器 3. 设置view->Show hidden devices 4. 在Ports (COM &a ...

  10. Appium移动自动化测试(四)之元素定位

    做过UI自动化测试的童鞋都会发现, 在上一篇文章中居然没有万能定位方式Xpath. 是滴, 确实没有! ADT自带的uiautomatorviewer里面并没有属性xpath, 如果我们需要的话,还需 ...