# ruby **Repository Path**: DoAmber/ruby ## Basic Information - **Project Name**: ruby - **Description**: 学习 Ruby 的笔记以及 Demo - **Primary Language**: Ruby - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-01-01 - **Last Updated**: 2022-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Ruby 学习笔记 ## 1、简介 1. 定义:一种简单快捷的面向对象脚本语言 2. 开发者:松本行弘 3. 开发时间:1995年 4. 设计目的:A PROGRAMMER'S BEST FRIEND【程序员的最佳朋友】 5. 文件扩展名:rb ## 2、语言特性 1. 真正的面向对象编程语言 2. 可扩展性强,且易于维护 3. 丰富的语法糖,程序员友好 ## 3、应用场景 1. 网站开发 2. 脚本编程 ## 4、Ruby 注释 1. 单行注释 ` # 注释 Ruby 单行注释 ` 2. 多行注释 ```ruby =begin 这是多行注释 =end ``` ## 5、Ruby 文件的构造与析构语句 ### 1. 文件构造语句 ```ruby BEGIN { puts '这是 Ruby 文件的运行之前调用' } ``` ### 2. 文件析构语句 ```ruby END { puts '这是 Ruby 文件的运行之后调用' } ``` ## 6、Ruby 变量 1. 变量不能使用保留字 2. 变量名只能由[a-z_0-1]组成,且只能由字母开头 3. 使用 .class 可以获取数据的类型 ```ruby variable='' # 声明变量 puts variable.class # String【Integer、Float、String、Array、Hash、NilClass、TrueClass、FalseClass】 ``` ## 7、Ruby 数据类型 ### 1. 数值类型 Number #### 1、整型 Integer #### 2、浮点型 Float ### 2. 字符串类型 String 1. 声明字符串 ```ruby var_string = '声明单行字符串' var_string = "#{var_string},双引号中可以解析变量" puts var_string ``` 2. 多行字符串 Here Document ```ruby var_string = 'Here Document 中仅仅使用EOF可以解析变量' here_document = <"标题"} ``` ##### 3. 移除哈希第一个值 ```ruby var_hash[:descript] = '移除哈希第一个值' puts var_hash # {:title=>"标题", :descript=>"移除哈希第一个值"} var_hash_first_value = var_hash.shift(); # 返回 [键,值] 或者 键,值 puts var_hash # {:descript=>"移除哈希第一个值"} puts var_hash_first_value.inspect ``` ##### 4. 移除哈希最后一个值 ##### 5. 添加元素到哈希开头 ##### 6. 哈希迭代 ```ruby var_hash = {} var_hash[:title] = 'hash.each' var_hash[:descript] = '哈希迭代' var_hash.each do |key,value| puts "current #{key} is #{value}" end ``` ### 6. 类和对象 #### 1、类的组成 ##### 1. 属性 1. 静态属性:即类属性,使用 ` @@ ` 声明,极少使用 2. 常量属性:使用大写字母声明 3. 实例属性:使用 ` @ ` 声明 ##### 2. 方法 使用 ` def ` 定义 1. 静态方法 2. 实例方法 ##### 3. 普通变量 #### 2、继承 1. 使用关键字符 ` < ` #### 3、访问控制 ##### 1. attr_accessor 1. attr_accessor 关键字:相当于 attr_reader 和 attr_writer 2. 使用方法:` attr_accessor :variable_name ` 相当于定义了 ` variable_name() ` 获取方法与 ` variable_name=() ` 设置方法 ##### 2. 3P 访问控制 1. public:默认控制,可被任意对象调用 2. protected:保护方法,只能被类以及子类中调用,可以被 self 关键字调用 3. private:私有保护,只能被类以及子类中调用,不可以被 self 关键字调用 #### 注意 1. 不通过构造方法给实例属性赋于的初值是无效的 2. Ruby 中无法调用类和对象的非常量属性 ### 备注 #### 1、Ruby 中数组与字典的区别 1. 数组定义值没有索引、键由系统生成、与 C 语言一致, 2. 字典声明时必须指定键、否则报错、并且一般不能是数字索引 ## 附录其他 1. Ruby 中的空字符串可以用来解释模棱两可的语句 2. Ruby 把英文半角分号和换行符解释为语句的结尾 3. Ruby 中没有明确的值传递和引用传递的概念 4. Ruby 中变量未定义与变量等于nil概念不能视为一致